CF1605A A.M. Deviation
【题目】
https://www.luogu.com.cn/problem/CF1605A
【题目大意】
给定三个数,并可以进行以下操作若干次,使得三个数中,使得
|a1+a3-2a2|
的值最小。
操作: 取三个数中的两个数,其中一个+1,另一个-1。
【分析】
首先,由题意得,对于每次操作,2*a2的值要增加或减小2,另两个数中的一个要增加或减小1,即每次操作过后 |a1+a3-2a2| 的值会增大3或减小3。
易知:
当 |a1+a3-2a2|%3==0时,|a1+a3-2a2| 通过操作而得到的最小值必定为0;
当 |a1+a3-2a2|%3==1时,无法通过再一次操作使得该值更小;
当 |a1+a3-2a2|%3==2时,可通过一次操作分配给a1和a2各1,则操作后该值变为1。
【代码】
1 #include<bits/stdc++.h> 2 using namespace std; 3 int t,a,b,c; 4 int main(){ 5 scanf("%d",&t); 6 while(t--){ 7 scanf("%d %d %d",&a,&b,&c); 8 printf("%d\n",abs(a+c-2*b)%3?1:0); 9 } 10 return 0; 11 }