F 小名的回答 (奇偶) 湖南师范大学2018年大学生程序设计竞赛新生赛

链接:https://www.nowcoder.com/acm/contest/127/F
来源:牛客网

题目描述
总算到暑假了,小姐姐是非常的闲,所以想去找梅溪湖的小名玩,可是她从没去过梅溪湖,所以只能凭小名告诉她的地方走,每次只能向上下左右四个方向走1步。小姐姐的坐标为(0,0),小名在(a,b),小姐姐有点近视,小名也有点近视。所以到了(a,b)也不一定能和小名会面,不过还好,小姐姐最后找到了小名。小姐姐想要小名知道自己来一趟是多么不容易,所以在聊天的过程中小姐姐说自己为了到这里走了n步。小名,你觉得她说的可能是真话么。有可能就输出YES,否则输出NO(如果用random的话,小姐姐觉得你好像不在意她,明年暑假就不来了)
输入描述:
a,b,n(-1000<=a,b<=1000,a*b>0,1<=n<=2000)
输出描述:
“YES” or “NO”
示例1
输入

复制
2 2 4
输出

复制
YES
示例2
输入

复制
1 9 2
输出

复制
NO

[分析]
最简单的就是直接走a+b,也是最近的走法。所以一个条件就是n>=a+b;

还有可能要绕路。绕路无论如何绕,往上绕的路终究要往下走回来,往左绕的路终究要往右走回来,所以每绕一格路,终究都要再走一格绕回来,所以就是走两步。就相当于a+b+绕路的步数,这个绕路的步数必定是偶数,所以n必须和a+b具有相同的奇偶性。

[分析]

#include<cstdio>
#include<cstring>
int main()
{
    int a, b, n;
    while (scanf("%d%d%d", &a, &b, &n) != EOF)
    {
        int flag = 1;
        if (n < a + b)flag = 0;
        if (((a + b) & 1) != (n & 1))flag = 0;
        if (flag)printf("YES\n");
        else printf("NO\n");
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值