九度1377缓变序列

#include<stdio.h>
#include<string.h>
int n,m,k,i,j,minN,a[10003];
main()
{
      while(~scanf("%d",&n))
      {
           memset(a,0,sizeof(a));
           minN=0x7ffffff,m=0,j=0;
           for(i=0;i<n;i++)scanf("%d",&k),minN=minN<k?minN:k,a[k]==0?m++:0,a[k]++;
           if(m==1)printf("NO\n");
           else if(m==2)printf(minN+1<=10000&&a[minN]==a[minN+1]?"YES\n":"NO\n");
           else
           {
              for(i=1;i<=m-2;i++)
              if(a[minN+i]>a[minN+i-1])a[minN+i]-=a[minN+i-1];
              else{j=1;break;}
              if(j)printf("NO\n");
              else printf(a[minN+i]==a[minN+i-1]?"YES\n":"NO\n");
           }
      }
}
               

posted on 2012-10-18 14:11  dokc  阅读(149)  评论(0编辑  收藏  举报

导航