답안 #449897

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
449897 2021-08-02T09:17:30 Z fuad27 Tracks in the Snow (BOI13_tracks) C++14
24.8958 / 100
2000 ms 638552 KB
#include<bits/stdc++.h>
using namespace std;
int h, w, ans = 0;
vector<vector<char>> v;
vector<vector<bool>> visited(h, vector<bool> (w, 0));
void dfs(vector<vector<char>> &v, int i, int j, char k) {
if(i < 0 or j < 0  or i >= h or j >=w or v[i][j] == '.' or (v[i][j] != '#' and v[i][j] != k) or visited[i][j])return;
else {
	v[i][j] = '#';
	visited[i][j] = true;
	dfs(v, i+1, j, k);
	dfs(v, i-1, j, k);
	dfs(v, i, j+1, k);
	dfs(v, i, j-1, k);	
}
}
int main () {
cin >> h >> w;
v.resize(h, vector<char> (w));
for(int i = 0;i<h;i++) {
	for(int j = 0;j<w;j++) {
		cin >> v[i][j];
	}
}
queue<pair<int, int>> q;
q.push({0, 0});
vector<vector<int>> visi(h, vector<int>(w, 0));
while(!q.empty()) {
	int x = q.front().first;
	int y = q.front().second;
	q.pop();
	if(v[x][y]!='.' and !visi[x][y]) {
		visited.assign(h, vector<bool> (w, 0));
		if(x) {
			q.push({x-1, y});
		}
		if(y) {
			q.push({x, y-1});
		}
		if(x < h-1) {
			q.push({x+1, y});
		}
		if(y < w -1) {
			q.push({x, y+1});
		}
		if(v[x][y] != '#') {
		dfs(v, x, y, v[x][y]);
		ans++;
	}
	visi[x][y] = 1;
}
}
cout<<ans<<endl;

}
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2097 ms 9268 KB Time limit exceeded
2 Correct 2 ms 204 KB Output is correct
3 Correct 12 ms 332 KB Output is correct
4 Execution timed out 2092 ms 7764 KB Time limit exceeded
5 Correct 797 ms 1152 KB Output is correct
6 Correct 2 ms 204 KB Output is correct
7 Correct 14 ms 436 KB Output is correct
8 Correct 19 ms 548 KB Output is correct
9 Correct 22 ms 380 KB Output is correct
10 Correct 214 ms 788 KB Output is correct
11 Correct 258 ms 1996 KB Output is correct
12 Execution timed out 2072 ms 3744 KB Time limit exceeded
13 Correct 785 ms 1064 KB Output is correct
14 Correct 776 ms 1156 KB Output is correct
15 Execution timed out 2094 ms 3076 KB Time limit exceeded
16 Execution timed out 2075 ms 7328 KB Time limit exceeded
17 Execution timed out 2075 ms 3692 KB Time limit exceeded
18 Execution timed out 2071 ms 7768 KB Time limit exceeded
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2049 ms 1424 KB Time limit exceeded
2 Execution timed out 2079 ms 10020 KB Time limit exceeded
3 Execution timed out 2051 ms 82808 KB Time limit exceeded
4 Execution timed out 2045 ms 24736 KB Time limit exceeded
5 Execution timed out 2005 ms 47580 KB Time limit exceeded
6 Execution timed out 2075 ms 361036 KB Time limit exceeded
7 Execution timed out 2079 ms 1632 KB Time limit exceeded
8 Execution timed out 2074 ms 1696 KB Time limit exceeded
9 Correct 294 ms 1236 KB Output is correct
10 Correct 367 ms 660 KB Output is correct
11 Correct 1673 ms 1660 KB Output is correct
12 Execution timed out 2052 ms 1044 KB Time limit exceeded
13 Execution timed out 2051 ms 10192 KB Time limit exceeded
14 Execution timed out 2077 ms 6788 KB Time limit exceeded
15 Execution timed out 2089 ms 6716 KB Time limit exceeded
16 Execution timed out 2076 ms 5748 KB Time limit exceeded
17 Execution timed out 2049 ms 22652 KB Time limit exceeded
18 Execution timed out 2076 ms 21904 KB Time limit exceeded
19 Execution timed out 2037 ms 24752 KB Time limit exceeded
20 Execution timed out 2081 ms 19048 KB Time limit exceeded
21 Execution timed out 2064 ms 49120 KB Time limit exceeded
22 Execution timed out 2052 ms 47604 KB Time limit exceeded
23 Execution timed out 2053 ms 41896 KB Time limit exceeded
24 Execution timed out 2066 ms 48096 KB Time limit exceeded
25 Execution timed out 2058 ms 82784 KB Time limit exceeded
26 Execution timed out 2099 ms 638552 KB Time limit exceeded
27 Execution timed out 2074 ms 276624 KB Time limit exceeded
28 Execution timed out 2090 ms 360228 KB Time limit exceeded
29 Execution timed out 2072 ms 323356 KB Time limit exceeded
30 Execution timed out 2079 ms 288172 KB Time limit exceeded
31 Execution timed out 2087 ms 79476 KB Time limit exceeded
32 Execution timed out 2092 ms 431800 KB Time limit exceeded