|
|
back to boardwhy i got wrong??!! Posted by t c 27 Apr 2002 23:27 #include<iostream.h> #include<stdio.h> long a[1002]; long mark[1002]; long n,m; long partition(long low,long high) { a[0]=a[low]; if(low<high) { while(low<high&&a[high]>=a[0])high--; a[low]=a[high]; while(low<high&&a[low]<=a[0])low++; a[high]=a[low]; } a[low]=a[0]; return low; } ///////////// void qsort(long low,long high) { if(low<high) { long piv=partition(low,high); qsort(low,piv-1); qsort(piv+1,high); } } ////////////// void main() { long i,j; freopen("in.txt","r",stdin); cin>>n>>m; if(m==0){cout<<"YES";return ;} for(i=1;i<=m;i++) { cin>>a[i]; if(a[i]>n){cout<<"NO";return ;} } for(i=1;i<=n;i++)mark[i]=0; qsort(1,m); for(i=1;i<=m;i++) { if(a[i]==0) { if(mark[1]==0){mark[1]=1;continue;} else{cout<<"NO";return ;} } if(a[i]<=n&&mark[a[i]]==0) {mark[a[i]]=1;continue;} if(a[i]+1<=n&&mark[a[i]+1]==0) {mark[a[i]+1]=1;continue;} cout<<"NO";return ; } cout<<"YES"; } |
|
|