POJ 3364 Black and white painting
問題
n x mの市松模様が与えられる。右下が白の場合はc = 1、黒の場合はc = 0である。
8 x 8のチェスボードはこの中にいくつあるか返せ。
やりかた
チェスボードを模様の中で動かすことを想定すると、チェスボードの左上が動ける範囲は、模様の左上から(n - 7) * (m - 7)の中にある。この中にある白のマスの数を数えればいい。
cの値と(n - 7) * (m - 7)の偶奇によって答えが少し違うので注意。ただ絵を書いてみればすぐわかるはず。
以下ソース。
int main(int argc, char **argv){ int n, m, c; while(cin >> n >> m >> c, n + m + c){ n -= 7, m -= 7; if((n * m) & 1) cout << (n * m) / 2 + c << endl; else cout << n * m / 2 << endl; } }
Get up! 明日のSUPER ST@R!