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:

  1. \(x_a\)<=k,此时只能让\(x_a\)移到k.
  2. \(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;
}
posted @ 2021-06-02 02:13  acmloser  阅读(44)  评论(0编辑  收藏  举报