#include <stdio.h>
#include <string.h>
int DNA[10],dish[40]={0},dish_next[40]={0},cases;
int main(){
//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
scanf("%d",&cases);
while(cases--){
//getchar();
for(int i=0;i<10;i++)scanf("%d",&DNA[i]);
//for(int i=0;i<10;i++)printf("%d ",DNA[i]);
dish[19]=1;
for(int i=0;i<40;i++){
if(dish[i]==1)printf(".");
else if(dish[i]==2)printf("x");
else if(dish[i]==3)printf("W");
else printf(" ");
}
printf("\n");
for(int i=0;i<49;i++){
for(int k=0;k<40;k++){
if(k==0)dish_next[k] = DNA[ dish[k]+dish[k+1] ];
else if(k==39)dish_next[k] = DNA[ dish[k]+dish[k-1] ];
else dish_next[k] = DNA[ dish[k-1]+dish[k]+dish[k+1] ];
}
for(int i=0;i<40;i++){
if(dish_next[i]==1)printf(".");
else if(dish_next[i]==2)printf("x");
else if(dish_next[i]==3)printf("W");
else printf(" ");
dish[i] = dish_next[i];
}
printf("\n");
}
for(int i=0;i<40;i++){
dish[i]=0;
dish_next[i]=0;
}
if(cases)printf("\n"); //重要!檢查是否已經到最後了,最後不能輸出兩空行
}
return 0;
}
2014年9月1日星期一
[UVa] 457 - Linear Cellular Automata
訂閱:
發佈留言 (Atom)
-
因為先前寫UVa時,檔案名稱有時會花心思改,有時就直接把題目名稱加上.cpp就貼上了 導致現在有不同的格式出現 現在要處理的事情很簡單 1. 去除空白 2. 將底線 ( _ ) 換成dash ( - ) 經過一番查詢,終於發現最簡單的方法 - re...
-
文章出處: http://infbugs.blogspot.tw/2011/12/c_20.html 謝謝沙耶,解答了我長久以來對於 input/output 的疑惑。 C 語言入門 - 在線上批改系統練功 如何練習使用基本語法 自己出個練習題試著寫...
-
一開始用數學方法推斷得出,設輸入為n k為在n的前一斜線列數,故只要找到 (1+k)*k/2 < n 的最大k值,即可判定 k%2 == 1 => ((2*n)-(k*k)-k)/2 / ((k*k)+(3*k)-(2*n)+4)/2 k%2 ==...
沒有留言:
發佈留言