Cod sursa(job #1042393)

Utilizator lucianRRuscanu Lucian lucianR Data 26 noiembrie 2013 22:59:58
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;
ifstream in("scari.in");

long int m, v[3005];
long long int n;

bool solve()
{
    if(v[1] == 1 || v[m] == n)
        return 0;
    for(int i = 1; i <= m -2; i++)
    {
        if(v[i] == v[i+1] - 1 && v[i+2] == v[i] + 2)
            return 0;
    }
    return 1;
}

int main()
{
    cin >> n >> m;
    for(int i = 1; i <= m; i++)
        cin >> v[i];
    sort(v+1, v+m+1);

    if(m>2)
        if(solve() == 1) cout <<"YES";
        else cout << "NO";
    if(m==2)
    {
        if(v[1] == 1 || v[2] == n)
            cout<<"NO";
        if(v[1] != 1 && v[2] != n)
            cout <<"YES";
    }
    if(m == 1)
    {
        if(v[1] != 1 && v[1] !=n)
            cout<<"YES";
            else cout <<"NO";
    }
    if(m == 0) cout<<"YES";

    return 0;
}