夢追い人

"It takes a dreamer to make a dream come true."―Vincent Willem van Gogh

R1CのA

これは簡単だったので、フルで参加しませんでしたが解きました。

int main() {
	int T; cin >> T;
	for (int ix=1; ix<=T; ix++) {
		int R, C; cin >> R >> C;
		ves input(R);
		bool flag=true;
		for (int i=0; i<R; i++) cin >> input[i];
		for (int i=0; i<R; i++) {
			for (int j=0; j<C; j++) {
				if (input[i][j]=='#') {
					if (i+1<R&&j+1<C&&input[i][j+1]=='#'&&input[i+1][j]=='#'&&input[i+1][j+1]=='#') {
						input[i][j] = '/'; input[i][j+1] = '\\';
						input[i+1][j] = '\\'; input[i+1][j+1] = '/';
						j++;
					} else {
						flag = false;
						break;
					}
				}
			}
			if (!flag) break;
		}
		printf("Case #%d:\n",ix);
		if (flag) {
			for (int i=0; i<R; i++) cout << input[i] << endl;
		} else {
			cout << "Impossible" << endl;
		}
	}
}

vesはvectorのtypedefです。

largeまでこの単純な探索で解けました。おわり。



ちょっとC#やるついでにJavaに戻ろうかな・・・