Distance and Axis CodeForces - 1401A
原题链接
考察:贪心(?)
我是sb,A题想半天还是错的(.)
思路:
\[x_b-(x_a-x_b) = k
\]
\[2*x_b-x_a = k
\]
由此发现只要k+xa%2==1就需要移动.此时xa可以通过左移右移来使k+xa为偶数.
从这里开始根本不需要解不等式!直接讨论\(x_a\)与k:
- \(x_a\)<=k,此时只能让\(x_a\)移到k.
- \(x_a\)>k,此时\(x_a\)左移或者右移1格就行....
我是sb,花了一堆时间讨论\(x_b\)与\(x_a\)的绝对值正负.
Code
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int n,k,ans = 0;
scanf("%d%d",&n,&k);
if(((n+k)&1)||(n+k)/2>n)
{
if(n>k) ans = 1;
else ans = abs(k-n);
}
printf("%d\n",ans);
}
return 0;
}