※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

「AOJ再挑戦66~70」の編集履歴(バックアップ)一覧に戻る

AOJ再挑戦66~70 - (2014/01/30 (木) 19:00:48) の1つ前との変更点

追加された行は青色になります

削除された行は赤色になります。

 会津大学オンラインジャッジを解くページ。
 
 *問66 Tic Tac Toe
 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0066
 チックタックトゥの勝敗判定をする問題。
 
 自分で考えられる限りの短縮を図ったものの平凡なショートコーディングになった。
 まあ昔多少掲示板でヒントはもらったけれど、その時よりも短くなっている。
 短さ1位の人のコードは想像もつかないがAOJの外には1位の人より上がいるのがネットの世界。
-すごいよなと思う。
+すごいと思う。
+AOJばっかりに閉じこもってないで少しは外に出ないとダメだよな。
 
 
  #include<stdio.h>
  int main(){
-  	char r[]="1113334203601202",b[60],i,t,s,p,d;
- 	while(scanf("%s",&b[48])>-1){
+ 	char *r="0001223613432311",b[10],i,t,s,p,d;
+ 	while(scanf("%s",b)>0){
  		t=i=0;
- 		for(;i<8;i++){
- 			p=r[i+8];
-  			d=r[i]%8;
- 			s=(b[p]&b[p+d]&b[p+d*2])%10;
- 			t|=(s<2)+(s<1);
- 		}
-  		printf("%c\n",t>1?'x':t?'o':'d');
+  		while(i<8){
+ 			d=r[i+8]%8;
+ 			p=r[i++]%8;
+ 			s=(b[p]|b[p+d]|b[p+d*2])&18;
+ 			t|=s<17?s%3:0;
+  		}
+ 		printf("%c\n","dxo"[t]);
  	}
  }