CodeForces 362B Petya and Staircases

原创 2016年06月01日 22:48:31

 CodeForces 362B Petya and Staircases 

time limit per test  1 second
memory limit per test  256 megabytes


Little boy Petya loves stairs very much. But he is bored from simple going up and down them — he loves jumping over several stairs at a time. As he stands on some stair, he can either jump to the next one or jump over one or two stairs at a time. But some stairs are too dirty and Petya doesn't want to step on them.

Now Petya is on the first stair of the staircase, consisting of n stairs. He also knows the numbers of the dirty stairs of this staircase. Help Petya find out if he can jump through the entire staircase and reach the last stair number n without touching a dirty stair once.

One has to note that anyway Petya should step on the first and last stairs, so if the first or the last stair is dirty, then Petya cannot choose a path with clean steps only.

Input

The first line contains two integers n and m (1 ≤ n ≤ 109, 0 ≤ m ≤ 3000) — the number of stairs in the staircase and the number of dirty stairs, correspondingly. The second line contains m different space-separated integers d1, d2, ..., dm (1 ≤ di ≤ n) — the numbers of the dirty stairs (in an arbitrary order).

Output

Print "YES" if Petya can reach stair number n, stepping only on the clean stairs. Otherwise print "NO".

Examples

Input
10 5
2 4 8 3 6

Output

NO

Input

10 5
2 4 5 7 9

Output

YES

链接在这:题目链接


排序,遍历寻找连续的dirty是否超过2个


代码:

#include<stdio.h>
#include<algorithm>
using namespace std;

int a[3005];

int main()
{
    int n,m;
    while(~scanf("%d %d",&n,&m))
    {
        for(int i=0; i<m; i++)
            scanf("%d",&a[i]);
        if(m>=n)
        {
            printf("NO\n");
            continue;
        }
        else
        {
            sort(a,a+m);
            if(a[0]==1||a[m-1]==n)
            {
                printf("NO\n");
                continue;
            }
            else
            {
                int cont=0;
                int flag=1;
                for(int i=2;i<m;i++)
                {
                    if(a[i]-a[i-2]<=2)
                    {
                        printf("NO\n");
                        flag=0;
                        break;
                    }
                }
                if(flag==1)
                    printf("YES\n");
            }
        }
    }
    return 0;
}




版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Codeforces Round #212 (Div. 2) B. Petya and Staircases

题意就是:一个人在跳台阶,一次可以向上跳一个或者是跨过一个或者两个。但是有一些比较脏的台阶他不会去调,判断他是否可以跳到第n个台阶。开始的时候在第一个台阶。 注意:第一个台阶和第n个台阶如果是脏的话...

Codeforces 362 E Petya and Pipes【费用流】好题

E. Petya and Pipes time limit per test 1 second memory limit per test 256 megabytes input...

codeforces 832B (Petya and Exam)

B. Petya and Exam time limit per test 2 seconds memory limit per test 256 megabytes input stan...

CodeForces 832 B. Petya and Exam

原题链接:http://codeforces.com/problemset/problem/832/B 题意: 先给出一个字符串A称为 good letters,其余的为bad letters。 ...

Codeforces Round #425 (Div. 2) B. Petya and Exam

B. Petya and Exam time limit per test 2 seconds memory limit per test 256 megabytes input stan...

Codeforces 832-B Petya and Exam (模拟)

题目链接: http://codeforces.com/contest/832/problem/B题目大意: 给定一个匹配串A,和许多待匹配串,询问每次两个串之间是否完全匹配,其中给出good c...

CodeForces 832B Petya and Exam

B. Petya and Exam time limit per test 2 seconds memory limit per test 256 megabytes ...

codeforces 832B ——Petya and Exam

B. Petya and Exam time limit per test 2 seconds memory limit per test 256 megabytes ...

Petya and Exam - CodeForces 832B

题目:B. Petya and ExamIt’s hard times now. Today Petya needs to score 100 points on Informatics exam. ...

(字符串匹配)Codeforces Round #425 B. Petya and Exam

题目网址: Codeforces Round #425 B. Petya and Exam题意分析: 题意: 先给一串好的字符的字符串 goodStr, 除这个字符串中的字符外,均为坏的字符 然后给匹...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)