답안 #807789

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
807789 2023-08-05T01:55:26 Z rxlfd314 Furniture (JOI20_furniture) C++17
0 / 100
1 ms 340 KB
#include <bits/stdc++.h>
using namespace std;
using ari2 = array<int, 2>;

signed main() {
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	
	int N, M;
	cin >> N >> M;
	vector<vector<bool>> bad(N+2, vector<bool>(M+2, 0));
	int dcnt[N+M+1] = {};
	for (int i = 0; i < N+2; i++) {
		bad[i][0] = bad[i][M+1] = 1;
	}
	for (int i = 0; i < M+2; i++) {
		bad[0][i] = bad[N+1][i] = 1;
	}

	function<void(int, int)> yeet = [&](int i, int j) {
		if (bad[i][j]) return;
		bad[i][j] = 1;
		dcnt[i+j]++;
		if (bad[i+1][j-1]) {
			yeet(i, j-1);
			yeet(i+1, j);
		}
		if (bad[i-1][j+1]) {
			yeet(i-1, j);
			yeet(i, j+1);
		}
	};
	
	for (int i = 1; i <= N; i++) {
		for (int j = 1; j <= M; j++) {
			bool b;
			cin >> b;
			if (b) {
				yeet(i, j);
			}
		}
	}
	
	int Q;
	for (cin >> Q; Q--; ) {
		int i, j;
		cin >> i >> j;
		if (bad[i][j] || dcnt[i+j] < min(N, i+j) - max(1, i+j-M)) {
			yeet(i, j);
			cout << "1\n";
		} else {
			cout << "0\n";
		}
	}
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Incorrect 1 ms 340 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Incorrect 1 ms 340 KB Output isn't correct
3 Halted 0 ms 0 KB -