/* ID: zizz-zi LANG: C TASK: beads */ #include <stdio.h> int main(void) { FILE *fin,*fout; fin=fopen("beads.in","r"); fout=fopen("beads.out","w"); int n,i,j,t,now=1,max=1,temp=0,begin=0,w=0; char s[700],flag; fscanf(fin,"%d",&n); fscanf(fin,"%s",&s); i=0; while(s[i]=='w'){ w++; i++; } if (w==0) flag=s[i]; else if(w==n){ max=n; fprintf(fout,"%d\n",max); fclose(fin);fclose(fout); return 0; } else{ begin+=w; now+=w; flag=s[w]; } for(i=n;i<2*n;i++) s[i]=s[i-n]; for(i=begin+1;i<2*n;i++){ if(s[i]==flag){ now++; w=0; if(temp+now>max) max=temp+now; } else if(s[i]=='w'){ w++; now++; if(temp+now>max) max=temp+now; } else{ flag=s[i]; temp=now-w; now=w+1; w=0; } } if(max>n) max=n; fprintf(fout,"%d\n",max); fclose(fin);fclose(fout); return 0; }
USACO 1.1 beads
最新推荐文章于 2021-05-02 10:59:52 发布