トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

2006ra5.cpp

#include <iostream>
using namespace std;
#define TK 20
main()
{
	while(1){
		int n,tx[TK],ty[TK];
		cin >> n;
		if(n==0) break;
		for(int i=0; i<n; i++){
			int x,y;
			cin >> x >> y;
			tx[i]=x;
			ty[i]=y;
		}
		int m;
		cin >> m;
		int x,y;
		x=y=10;
		int takara=n;
		for(int i=0; i<m; i++){
			char d;
			int move;
			cin >> d >> move;
			for(int j=0; j<move; j++){
				switch(d){
					case 'N':y++; break;
					case 'E':x++; break;
					case 'W':x--; break;
					case 'S':y--; break;
				}
				for(int k=0; k<n; k++){
					if(tx[k]==x && tx[k]==y){
						tx[k]=ty[k]=-1;
						takara--;
					}
				}
			}
		}
		if(takara>0){
			cout << "No" << endl;
		}else{
			cout << "Yes" << endl;
		}
	}
	return 0;
}