codeforces cf edu round#50 B. Diagonal Walking v.2
Posted lishengkangshidatiancai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了codeforces cf edu round#50 B. Diagonal Walking v.2相关的知识,希望对你有一定的参考价值。
思路:当m > k时输出-1(设m是较大的数),当m-n是奇数时有一步不能走对角线所以k--,当走对角线可以直接到达终点,如果剩余的步数是奇数则有两步不能走对角线所以k - 2。(画图观察规律)
#include<bits/stdc++.h> using namespace std; typedef long long ll; int main() { int q; scanf("%d",&q); while(q--) { ll n,m,k; scanf("%lld%lld%lld",&n,&m,&k); if(n>m) swap(n,m); if(k<m) { printf("-1 "); continue; } ll res; if( (m-n)%2==0 ) { if(k%2==m%2) { printf("%lld ",k); } else { printf("%lld ",k-2); } } else if( (m-n)%2==1 ) { if(k==m) { printf("%lld ",k-1); continue; } else if(k>m) { ll sheng=k-n; ll cha=m-n; if(sheng%2==cha%2) { if(cha%2==0) { res=k; } else if(cha%2==1) { res=k-1; } } else { if(cha%2==1&&sheng%2==0) { res=k-1; } else if(cha%2==0&&sheng%2==1) { res=k-2; } } printf("%lld ",res); continue; } } } }
以上是关于codeforces cf edu round#50 B. Diagonal Walking v.2的主要内容,如果未能解决你的问题,请参考以下文章
题解 Codeforces Round #678 (Div. 2) (CF1436)
codeforces比赛题解#920 Educational CF Round 37
Codeforces Round #677 (Div. 3)
codeforces比赛题解#864 CF Round #436 (Div.2)