トップ 一覧 Farm 検索 ヘルプ RSS ログイン

2006ra2.cの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
 #include <stdio.h>
 #include <stdlib.h>
 #include <math.h>
 // 整数型2次元配列を使った方法
 // 下方向を北と考えている(コンピュータとy軸は下方向がプラスだから)
 main()
 {
 	int n,m,i,j,x,y,ryo,takara;
 	int map[21][21];
 	char muki;
 	
 	while(1){
 		// 文字と数字が混在した入力はうまく行かないことが多いが、
 		// scanfを使ってみた
 		scanf("%d", &n);
 		if(n==0) break;
 		
 		// 地図クリア(何も無い=0)
 		for(j=0; j<=20; j++){
 			for(i=0; i<=20; i++){
 				map[i][j]=0;
 			}
 		}
 		
 		// 宝石を置く(=1)
 		for(i=0; i<n; i++){
 			scanf("%d %d", &x, &y);
 			map[x][y]=1;
 		}
 		
 		scanf("%d", &m);;
 		
 		takara=0; // 見つけた宝石を数えてみた
 		x=10; y=10;
 		for(i=0; i<m; i++){
 			scanf("%c", &muki); // 改行読み飛ばし
 			scanf("%c %d", &muki, &ryo);
 			for(j=0; j<ryo; j++){
 				switch(muki){
 					case 'N': y++; break;
 					case 'E': x++; break;
 					case 'W': x--; break;
 					case 'S': y--; break;
 				}
 				if(map[x][y]){
 					takara++;
 					map[x][y]=0;
 				}
 			}
 		}
 		if(takara==n){
 			puts("Yes");
 		}else{
 			puts("No");
 		}
 	}
 	
 	return(0);
 }