UnKoder #03に参加。何とか全完したもののミスしまくり。
難易度はA<C<B<Dでした。
https://www.hackerrank.com/contests/unkoder-03/challenges/mine-number
問題
マインスイーパにおける爆弾の位置が与えられる。
爆弾に隣接(斜め含む)する空マスに周囲の爆弾の数を埋めよ。
解法
周囲8マスを見るだけ。
int H,W; string S[100]; void solve() { int i,j,k,l,r,x,y; string s; cin>>H>>W; FOR(y,H) cin>>S[y]; FOR(y,H) { FOR(x,W) if(S[y][x]=='.') { S[y][x]='0'; for(int tx=x-1;tx<=x+1;tx++) for(int ty=y-1;ty<=y+1;ty++) if(tx>=0 && tx<W && ty>=0 && ty<H && S[ty][tx]=='#') S[y][x]++; if(S[y][x]=='0') S[y][x]='.'; } } FOR(y,H) cout << S[y]<<endl; }
まとめ
これは典型的なやるだけ問題だと思うが、1問目とはいえなぜこれを選んだのだろう?