//第8回 予選 問3 「連鎖」
#include
int main(void){
FILE *fp ;
int data[2][10000], data_n=0, cnt ;
int i=0, j=0, n, tmp, max=0 ;
fp = fopen( "2009-yo-t3-in5.txt", "r" ) ;
fscanf( fp, "%d", &n); //データ個数取得
fscanf( fp, "%d", &data[0][data_n]); data[1][data_n]=1;//最初のデータ
for(i=1;i3 ){
cnt = data[1][i]+data[1][i-1]+data[1][i+1];
printf("%d ",cnt);
fprintf(fp,"%d ",cnt);
//さらにその外側が同色で4個以上になるか
while( i-j>=0 && i+j<=data_n ){
if( data[0][i-j]==data[0][i+j] &&
data[1][i-j]+data[1][i+j]>3 ){
cnt+=data[1][i-j]+data[1][i+j]; j++;
printf("%d ",cnt);
fprintf(fp,"%d ",cnt);}else{ j=10000; }
}
}
//変更場所の手前が3枚連続
else if( //data[1][i]==1 && data[1][i-1]==3 &&
data[1][i]+data[1][i-1]>3 &&
data[0][i-2]==data[0][i+1] ){
cnt = data[1][i]+data[1][i-1];
printf("%d ",cnt);
fprintf(fp,"%d ",cnt);
//さらにその外側が同色で4個以上になるか
while( i-j-1>=0 && i+j<=data_n ){
if( data[0][i-j-1]==data[0][i+j] &&
data[1][i-j-1]+data[1][i+j]>3 ){
cnt+=data[1][i-j-1]+data[1][i+j]; j++;
printf("%d ",cnt);
fprintf(fp,"%d ",cnt);}else{ j=10000; }
}
}
//変更場所の後ろが3枚連続
else if( //data[1][i]==1 && data[1][i+1]==3 &&
data[1][i]+data[1][i+1]>3 &&
data[0][i-1]==data[0][i+2] ){
cnt = data[1][i]+data[1][i+1];
printf("%d ",cnt);
fprintf(fp,"%d ",cnt);
//さらにその外側が同色で4個以上になるか
while( i-j>=0 && i+j+1<=data_n ){
if( data[0][i-j]==data[0][i+j+1] &&
data[1][i-j]+data[1][i+j+1]>3 ){
cnt+=data[1][i-j]+data[1][i+j+1]; j++;
printf("%d ",cnt);
fprintf(fp,"%d ",cnt);}else{ j=10000; }
}
}
if( max