http://codeforces.com/contest/1028/problem/A
縦N×横Mの盤面がある。
この盤面は最初は全て白色(W)だが、一部奇数の長さの正方形が黒色(B)で塗られている。
黒色の正方形の中心の座標を求めよ。
解法
http://codeforces.com/contest/1028/submission/42274562
実装問題であるが、実装方針を決めよう。
盤面が正しく塗られていると仮定して、左上(L,U)と右下(R,B)を求めよう。
すると、Lは黒色で塗られている中でのx座標の最小値である。
同様に、Rはx座標の最大値、Uはy座標の最小値、Bはy座標の最大値となる。
これらは簡単に求められる。
左上と右下が分かれば中心は縦横それぞれの平均を取った((L+R)/2, (U+B)/2)となる。
int H, W; string S[120]; //--------------------------------------------------------------------------------------------------- void _main() { cin >> H >> W; rep(y, 0, H) cin >> S[y]; int L = inf, R = -inf, U = inf, B = -inf; rep(y, 0, H) rep(x, 0, W) if (S[y][x] == 'B') { chmin(L, x); chmax(R, x); chmin(U, y); chmax(B, y); } int r = (U + B) / 2 + 1; int c = (L + R) / 2 + 1; printf("%d %d\n", r, c); }