Codeforces #176 Div2 A "IQ Test"
問題
http://codeforces.com/contest/287/problem/A
訳
白黒に塗られている4 * 4のタイルがある。
あと1つのタイルを塗り替える事によってどこかの2 * 2の部分を
1色だけにすることができるかを返せ。
もちろん塗り替えなくても既に出来てるならばそれでよい。
考えた事
全ての2 * 2の部分を見ていって白黒のどちらかが3つ以上あればよい
ソースコード
bool isBlack[4][4]; int main() { for( int y = 0; y < 4; y++ ){ for( int x = 0; x < 4; x++ ){ char c; cin >> c; isBlack[y][x] = (c == '#' ? true : false ); } } bool res = false; for( int y = 0; y < 3; y++ ){ for( int x = 0; x < 3; x++ ){ int b = 0, w = 0; for( int dy = 0; dy <= 1; dy++ ){ for( int dx = 0; dx <= 1; dx++ ){ if( isBlack[y+dy][x+dx] ){ b++; }else{ w++; } } } if( b >= 3 || w >= 3 ){ res = true; } } } cout << (res ? "YES" : "NO") << endl; }