B. Diagonal Walking v.2

链接

[https://i.cnblogs.com/EditPosts.aspx?opt=1]

题意

二维平面从原点出发k步,要到达的点(x,y),每个位置可以往8个方位移动,问到达目的地最多可以走多少斜路
如果不可以到达输出-1;

分析

找规律,看代码自己琢磨

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	ll q,x,y,k;
	cin>>q;
	while(q--){
		cin>>x>>y>>k;
		if(max(x,y)>k) {
			cout<<-1<<endl;
			continue;
		}
		if(x>y) swap(x,y);
		if((y-x)&1) k--;
		else if((k-y)&1) k-=2;
		cout<<k<<endl;
	}
	return 0;
} 
posted @ 2018-10-30 21:29  ChunhaoMo  阅读(166)  评论(0)    收藏  举报