Someday, Drazil wanted to go on date with Varda. Drazil and Varda live on Cartesian plane. Drazil's home is located in point (0, 0) and Varda's home is located in point (a, b). In each step, he can move in a unit distance in horizontal or vertical direction. In other words, from position (x, y) he can go to positions (x + 1, y), (x - 1, y), (x, y + 1) or (x, y - 1).

Unfortunately, Drazil doesn't have sense of direction. So he randomly chooses the direction he will go to in each step. He may accidentally return back to his house during his travel. Drazil may even not notice that he has arrived to (a, b) and continue travelling.

Luckily, Drazil arrived to the position (a, b) successfully. Drazil said to Varda: "It took me exactly s steps to travel from my house to yours". But Varda is confused about his words, she is not sure that it is possible to get from (0, 0) to (a, b) in exactly s steps. Can you find out if it is possible for Varda?

Input

You are given three integers ab, and s ( - 109 ≤ a, b ≤ 109, 1 ≤ s ≤ 2·109) in a single line.

Output

If you think Drazil made a mistake and it is impossible to take exactly s steps and get from his home to Varda's home, print "No" (without quotes).

Otherwise, print "Yes".

Examples
input
5 5 11
output
No
input
10 15 25
output
Yes
input
0 5 1
output
No
input
0 0 2
output
Yes
Note

In fourth sample case one possible route is: .

题解:记得加绝对值

 #include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <vector>
#include <cstdlib>
#include <iomanip>
#include <cmath>
#include <ctime>
#include <map>
#include <set>
using namespace std;
#define lowbit(x) (x&(-x))
#define max(x,y) (x>y?x:y)
#define min(x,y) (x<y?x:y)
#define MAX 100000000000000000
#define MOD 1000000007
#define pi acos(-1.0)
#define ei exp(1)
#define PI 3.141592653589793238462
#define INF 0x3f3f3f3f3f
#define mem(a) (memset(a,0,sizeof(a)))
typedef long long ll;
const int N=;
const int mod=1e9+;
int main()
{
ll a,b,s;
while(cin>>a>>b>>s){
a=llabs(a),b=llabs(b);
int flag=;
if(a+b>s) flag=;
else {
if(a+b==&&s%==) flag=;
else if(a+b==&&s%==) flag=;
else {
ll t=s-(a+b);
if(t%==) flag=;
else flag=;
}
}
if(flag) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return ;
}

最新文章

  1. 悟javascript ---------------20160705
  2. Linux之find命令用于统计信息
  3. Could not load file or assembly&#39;System.Data.SQLite.dll&#39; or one of its depedencies
  4. iOS 内存管理(一)之基础知识介绍
  5. TinyMCE(富文本编辑器)
  6. [大牛翻译系列]Hadoop(12)MapReduce 性能调优:诊断硬件性能瓶颈
  7. 怎样加入� android private libraries 中的包的源码
  8. 实现Android操作系统11种传感器介绍
  9. Servlet和JSP生命周期概述
  10. 网站开发进阶(三十二)HTML5之FileReader的使用
  11. 安装redis服务
  12. node.js学习6---第三方依赖(模块或者说是包)的导入 npm 以及 cnpm命令的使用
  13. 将Python脚本打包成可执行文件——转载
  14. Postgresql 数据库错误修复v0.1
  15. 最全的MonkeyRunner自动化测试从入门到精通(5)
  16. 转载 c++指针 指针入门
  17. LPC43xx SGPIO Slice 示意图
  18. 算法导论学习笔记1---排序算法(平台:gcc 4.6.7)
  19. tomcat如何配置俩个版本
  20. bower安装使用、git安装、node安装、weui安装开发

热门文章

  1. OpenCV4系列之图像梯度和边缘检测
  2. JMeter接口测试-JDBC测试
  3. 初识matlab
  4. C# 制作关键字醒目显示控件
  5. 如何用apply实现一个bind?
  6. CentOS安装python3环境
  7. Powershell无文件挖矿查杀方法
  8. javaConfig&amp;springBoot入门
  9. C#的委托案例
  10. P5788 【模板】单调栈