Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。
・問題 "Misterious Gems"
https://onlinejudge.u-aizu.ac.jp/problems/2000
・不思議な宝石
僕が作成、提出したコードは、以下のとおりです。
・Aizu Online Judge in C++ #Volume20 - 2000 : Misterious Gems
/* Aizu Online Judge in C++ #Volume20 - 2000 : Misterious Gems https://onlinejudge.u-aizu.ac.jp/problems/2000 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; using ll=long long; int main(void){ ll n,x,y,m,l,i,j,v[]={0,1,0,-1,0}; char d; while(cin>>n,n){ ll vv[21][21]={0}; for(i=0;i<n;i++){ cin>>x>>y; vv[y][x]=1; } x=y=10; for(cin>>m,i=0;i<m;i++){ cin>>d>>l; if(d=='E'){ d=0; } if(d=='N'){ d=1; } if(d=='S'){ d=3; } if(d=='W'){ d=2; } for(j=0;j<l;j++){ if(vv[y+=v[d]][x+=v[d+1]]){ vv[y][x]=0; n--; } } } cout<<(n ? "No\n" : "Yes\n"); } return 0; }
設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/