#include<stdio.h>
#include<math.h>
int main()
{
    int a,b,M,x;
    scanf("%d%d%d",&a,&b,&M);
    x=abs(a)+abs(b)-M;
    if(x>0)
    {
         printf("No");
        
    }
   else if(x==0)
    {
        printf("Yes");
    }
    else
    {
        if(x%2==0)
        {
            printf("Yes");
        }
        else
        {
            printf("No");
        }
        
    }
    return 0;
}

关键点:

  1. 工程车从(a, b)返回到(0, 0)需要经过的总步数是|a| + |b|,即坐标差的绝对值和。
  2. 现在,工程车能否通过M步回到原点的条件是:
    • M步的总数需要足够大,至少要等于|a| + |b|。
    • M - (|a| + |b|)必须是偶数。因为每一步改变的坐标是1单位,无法“半步”返回,因此剩余的步数必须是偶数,这样才能用剩余的步数来“消耗”掉回到原点的差距。

结论:

  1. 如果M小于|a| + |b|,则无法返回村长家。
  2. 如果M - (|a| + |b|)是偶数,则可以通过M步返回村长家。
  3. 否则,无法返回。