답안 #101684

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
101684 2019-03-19T10:16:21 Z jamielim Tracks in the Snow (BOI13_tracks) C++14
71.5625 / 100
2000 ms 79148 KB
#include <bits/stdc++.h>
using namespace std;
int main() {
    int h,w;
	scanf("%d%d",&h,&w);
	char grid[h+5][w+5];
	for(int i=0;i<h;i++)scanf("%s",grid[i]);
	queue<pair<int,int> > q;
	q.push(make_pair(0,0));
	int dx[]={0,0,1,-1},dy[]={1,-1,0,0};
	int dist[h][w];
	for(int i=0;i<h;i++){
		for(int j=0;j<w;j++)dist[i][j]=1000000010;
	}
	dist[0][0]=1;
	while(!q.empty()){
		pair<int,int> cur=q.front();q.pop();
		for(int i=0;i<4;i++){
			int nx=cur.first+dx[i],ny=cur.second+dy[i];
			if(0<=nx&&nx<h&&0<=ny&&ny<w){
				if(grid[nx][ny]=='.')continue;
				if(grid[nx][ny]==grid[cur.first][cur.second]){
					if(dist[nx][ny]>dist[cur.first][cur.second]){
						dist[nx][ny]=dist[cur.first][cur.second];
						q.push(make_pair(nx,ny));
					}
				}else{
					if(dist[nx][ny]>dist[cur.first][cur.second]+1){
						dist[nx][ny]=dist[cur.first][cur.second]+1;
						q.push(make_pair(nx,ny));
					}
				}
			}
		}
	}
	int ans=1;
	for(int i=0;i<h;i++){
		for(int j=0;j<w;j++){
			if(dist[i][j]<1000000010)ans=max(ans,dist[i][j]);
		}
	}
	printf("%d",ans);
}

Compilation message

tracks.cpp: In function 'int main()':
tracks.cpp:5:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d",&h,&w);
  ~~~~~^~~~~~~~~~~~~~
tracks.cpp:7:27: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  for(int i=0;i<h;i++)scanf("%s",grid[i]);
                      ~~~~~^~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 277 ms 1656 KB Output is correct
2 Correct 3 ms 384 KB Output is correct
3 Correct 2 ms 384 KB Output is correct
4 Correct 28 ms 1024 KB Output is correct
5 Correct 15 ms 768 KB Output is correct
6 Correct 2 ms 384 KB Output is correct
7 Correct 3 ms 256 KB Output is correct
8 Correct 3 ms 384 KB Output is correct
9 Correct 4 ms 384 KB Output is correct
10 Correct 8 ms 640 KB Output is correct
11 Correct 6 ms 512 KB Output is correct
12 Correct 57 ms 768 KB Output is correct
13 Correct 18 ms 768 KB Output is correct
14 Correct 19 ms 768 KB Output is correct
15 Correct 138 ms 1632 KB Output is correct
16 Correct 322 ms 1656 KB Output is correct
17 Correct 137 ms 1536 KB Output is correct
18 Correct 32 ms 1152 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 640 KB Output is correct
2 Correct 849 ms 8320 KB Output is correct
3 Execution timed out 2032 ms 78916 KB Time limit exceeded
4 Execution timed out 2041 ms 19064 KB Time limit exceeded
5 Correct 198 ms 44424 KB Output is correct
6 Execution timed out 2051 ms 79124 KB Time limit exceeded
7 Correct 4 ms 512 KB Output is correct
8 Correct 3 ms 512 KB Output is correct
9 Correct 22 ms 684 KB Output is correct
10 Correct 3 ms 512 KB Output is correct
11 Correct 4 ms 640 KB Output is correct
12 Correct 3 ms 512 KB Output is correct
13 Correct 797 ms 8228 KB Output is correct
14 Correct 397 ms 4984 KB Output is correct
15 Correct 25 ms 5248 KB Output is correct
16 Correct 772 ms 3676 KB Output is correct
17 Execution timed out 2035 ms 20472 KB Time limit exceeded
18 Correct 132 ms 20088 KB Output is correct
19 Execution timed out 2051 ms 19076 KB Time limit exceeded
20 Execution timed out 2061 ms 17272 KB Time limit exceeded
21 Execution timed out 2025 ms 46184 KB Time limit exceeded
22 Correct 176 ms 44408 KB Output is correct
23 Execution timed out 2029 ms 38820 KB Time limit exceeded
24 Correct 159 ms 44920 KB Output is correct
25 Correct 612 ms 78712 KB Output is correct
26 Correct 826 ms 60408 KB Output is correct
27 Correct 1099 ms 78808 KB Output is correct
28 Execution timed out 2041 ms 79096 KB Time limit exceeded
29 Execution timed out 2036 ms 79148 KB Time limit exceeded
30 Execution timed out 2050 ms 77464 KB Time limit exceeded
31 Execution timed out 2011 ms 51216 KB Time limit exceeded
32 Execution timed out 2058 ms 79096 KB Time limit exceeded