AtCoder Beginner Contest 086 C - Traveling

C - Traveling


Time limit : 2sec / Memory limit : 256MB

Score : 300 points

Problem Statement

AtCoDeer the deer is going on a trip in a two-dimensional plane. In his plan, he will depart from point (0,0) at time 0, then for each i between 1 and N (inclusive), he will visit point (xi,yi) at time ti.

If AtCoDeer is at point (x,y) at time t, he can be at one of the following points at time t+1(x+1,y)(x1,y)(x,y+1) and (x,y1). Note that he cannot stay at his place. Determine whether he can carry out his plan.

Constraints

  • 1  N  105
  • 0  xi  105
  • 0  yi  105
  • 1  ti  105
  • ti < ti+1 (1  i  N1)
  • All input values are integers.

Input

Input is given from Standard Input in the following format:

N
t1 x1 y1
t2 x2 y2
:
tN xN yN

Output

If AtCoDeer can carry out his plan, print Yes; if he cannot, print No.


Sample Input 1

Copy
2
3 1 2
6 1 1

Sample Output 1

Copy
Yes

For example, he can travel as follows: (0,0)(0,1)(1,1)(1,2)(1,1)(1,0), then (1,1).


Sample Input 2

Copy
1
2 100 100

Sample Output 2

Copy
No

It is impossible to be at (100,100) two seconds after being at (0,0).


Sample Input 3

Copy
2
5 1 1
100 1 1

Sample Output 3

Copy
No


这题题目简单,我就不说题意了,只要根据结论写就可以AC了

结论是   当前点到上一点的曼哈顿距离所需要的时间(起点的上一点为原点)%2==0

扫描二维码关注公众号,回复: 139414 查看本文章

这代表该点满足,否则不满足


#include <cstdio>
#include <cmath>
#include <cstdlib>
using namespace std;

int main() {
    int t;
    scanf("%d",&t);
    int s=0,sx=0,sy=0;
    while (t--) {
        int tx,x,y;
        scanf("%d%d%d",&tx,&x,&y);
        if((tx-s-abs(x-sx)-abs(y-sy))<0||(tx-s-abs(x-sx)-abs(y-sy))%2==1)
            break;
        s=tx;
        sx=x;
        sy=y;
    }
    t++;
    if(t)
        printf("No\n");
    else
        printf("Yes\n");
    return 0;
}




猜你喜欢

转载自blog.csdn.net/aaakirito/article/details/79392548
今日推荐