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

2006ra6.cpp

#include <iostream>

using namespace std;

void main()
{
	int jn, me;
	int xi[10], yi[10], x, y, move;
	int i, j;
	int flag;
	char hou;
	
	while( 1 ){
		
		cin >> jn;
		if( !jn ) break;
		
		for( i = 0; i < jn; i++ )
			cin >> xi[i] >> yi[i];
		
		cin >> me;
		x = y = 10;
		flag=0;
		for( j = 0; j < me; j++ ){
			cin >> hou >> move;
		
			switch( hou ){
			case 'N':	for(i=0;i<move;i++){
							y++;
							if(x==xi[j] && y==yi[j])
								flag++;
						}
						break;
					
			case 'S':	for(i=0;i<move;i++){
							y--;
							if(x==xi[j] && y==yi[j])
								flag++;
						}
						break;
						
			case 'E':	for(i=0;i<move;i++){
							x++;
							if(x==xi[j] && y==yi[j])
								flag++;
						}
						break;
						
			case 'W':	for(i=0;i<move;i++){
							x--;
							if(x==xi[j]&&y==yi[j])
								flag++;
						}
						break;
							
			default:	break;
			}
		
		
		}
	
		if( flag == jn )	cout << "yes" << endl;
		else 		cout << "no" << endl;
	}
	
}