Submission #1001243

# Submission time Handle Problem Language Result Execution time Memory
1001243 2024-06-18T17:24:59 Z vjudge3 Tracks in the Snow (BOI13_tracks) C++17
97.8125 / 100
1221 ms 1048576 KB
#include <bits/stdc++.h>
using namespace std;

bitset<4005> vis[4005], occ[4005], fox[4005];
vector<pair<short, short>> cur;
int h, w, dep = 1;
const int dr[4] = {0, 1, 0, -1}, dc[4] = {1, 0, -1, 0};

void dfs (short r, short c, bool f) {
	if (!vis[r][c]) cur.push_back({r, c});
	vis[r][c] = true;
	for (int k = 0; k < 4; k++) {
		int rv = r + dr[k], cv = c + dc[k];
		if (rv >= 1 && rv <= h && cv >= 1 && cv <= w && !vis[rv][cv] && occ[rv][cv] && fox[rv][cv] == f) dfs(rv, cv, f);
	}
}

int main () {
	cin >> h >> w;
	for (int i = 1; i <= h; i++) for (int j = 1; j <= w; j++) {
		char ch;
		cin >> ch;
		if (ch != '.') occ[i][j] = true;
		if (ch == 'F') fox[i][j] = true;
	}
	dfs(1, 1, fox[1][1]);
	while (true) {
		vector<pair<short, short>> last;
		last.swap(cur);
		for (auto& [r, c] : last) dfs(r, c, (dep & 1) ^ fox[1][1]);
		last.clear();
		if (cur.empty()) {
			cout << dep << '\n';
			return 0;
		}
		dep++;
	}
	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 19 ms 3416 KB Output is correct
2 Correct 1 ms 2396 KB Output is correct
3 Correct 1 ms 2396 KB Output is correct
4 Correct 12 ms 5324 KB Output is correct
5 Correct 5 ms 2904 KB Output is correct
6 Correct 0 ms 2396 KB Output is correct
7 Correct 1 ms 2392 KB Output is correct
8 Correct 1 ms 2392 KB Output is correct
9 Correct 1 ms 2396 KB Output is correct
10 Correct 4 ms 2652 KB Output is correct
11 Correct 4 ms 3676 KB Output is correct
12 Correct 8 ms 2904 KB Output is correct
13 Correct 4 ms 2936 KB Output is correct
14 Correct 6 ms 2908 KB Output is correct
15 Correct 17 ms 3164 KB Output is correct
16 Correct 20 ms 3420 KB Output is correct
17 Correct 15 ms 3288 KB Output is correct
18 Correct 12 ms 5208 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 6744 KB Output is correct
2 Correct 85 ms 6488 KB Output is correct
3 Correct 622 ms 15632 KB Output is correct
4 Correct 149 ms 8000 KB Output is correct
5 Correct 404 ms 11248 KB Output is correct
6 Correct 1014 ms 180564 KB Output is correct
7 Correct 4 ms 6748 KB Output is correct
8 Correct 4 ms 6600 KB Output is correct
9 Correct 4 ms 2908 KB Output is correct
10 Correct 2 ms 2908 KB Output is correct
11 Correct 3 ms 6564 KB Output is correct
12 Correct 2 ms 2652 KB Output is correct
13 Correct 79 ms 6480 KB Output is correct
14 Correct 46 ms 5680 KB Output is correct
15 Correct 46 ms 5716 KB Output is correct
16 Correct 37 ms 3740 KB Output is correct
17 Correct 206 ms 8020 KB Output is correct
18 Correct 163 ms 8060 KB Output is correct
19 Correct 143 ms 8016 KB Output is correct
20 Correct 139 ms 7896 KB Output is correct
21 Correct 352 ms 11348 KB Output is correct
22 Correct 419 ms 11340 KB Output is correct
23 Correct 360 ms 10372 KB Output is correct
24 Correct 380 ms 11276 KB Output is correct
25 Correct 616 ms 15444 KB Output is correct
26 Runtime error 806 ms 1048576 KB Execution killed with signal 9
27 Correct 1221 ms 804756 KB Output is correct
28 Correct 960 ms 174924 KB Output is correct
29 Correct 933 ms 142360 KB Output is correct
30 Correct 1037 ms 328200 KB Output is correct
31 Correct 671 ms 7892 KB Output is correct
32 Correct 1145 ms 577700 KB Output is correct