# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
134506 | 2019-07-23T00:27:08 Z | degelo | Tracks in the Snow (BOI13_tracks) | C++17 | 2000 ms | 782984 KB |
#include<bits/stdc++.h> #define maxn 4002 using namespace std; int dx[]={-1,0,1,0},dy[]={0,1,0,-1}; int tab[maxn][maxn],rep[maxn][maxn],prof[maxn][maxn],marc[maxn][maxn]; int resp,n,m; deque<pair<int ,int> > nv; int find(int x,int y){ //cout<<'1'; int r=rep[x][y]; if(r==m*x+y) return r; int ry=r%m; int rx=r/m; return rep[x][y]=find(rx,ry); } void une(int x1,int y1,int x2,int y2){ //cout<<'2'; int r1=find(x1,y1); x1=r1/m;y1=r1%m; int r2=find(x2,y2); x2=r2/m;y2=r2%m; if(r1==r2) return; if(prof[x1][y1]<prof[x2][y2]){ rep[x1][y1]=r2; return; } rep[x2][y2]=r1; if(prof[x1][y1]==prof[x2][y2]) prof[x1][y1]++; } void comp(int x,int y,int t){ //cout<<x<<ends<<y<<endl; for(int i=0;i<4;i++){ int nx=x+dx[i]; int ny=y+dy[i]; if(nx==n||nx==-1||ny==m||ny==-1) continue; if(tab[nx][ny]==(3-t)&&find(nx,ny)!=find(0,0)){ nv.push_back(make_pair(nx,ny)); } if(tab[nx][ny]==t&&find(nx,ny)!=find(x,y)){ une(nx,ny,x,y); comp(nx,ny,t); } } } void perc(int t){ //cout<<nv.size()<<endl; resp++; int s=nv.size(); for(int i=0;i<s;i++){ int a=(nv.front()).first,b=(nv.front()).second; nv.pop_front(); //cout<<a<<ends<<b<<endl; if(marc[a][b]==1) continue; marc[a][b]=1; comp(a,b,t); une(a,b,0,0); } if(nv.size()==0) return; perc(3-t); } int main(){ scanf("%d %d",&n,&m); for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ char c; scanf(" %c",&c); if(c=='F') tab[i][j]=1; else if(c=='R') tab[i][j]=2; else tab[i][j]=0; } } /*for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cout<<tab[i][j]<<ends; } cout<<endl; }*/ for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ rep[i][j]=m*i+j; prof[i][j]=1; } } nv.push_back(make_pair(0,0)); perc(tab[0][0]); cout<<resp; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 91 ms | 12252 KB | Output is correct |
2 | Correct | 2 ms | 632 KB | Output is correct |
3 | Correct | 4 ms | 1144 KB | Output is correct |
4 | Correct | 51 ms | 12536 KB | Output is correct |
5 | Correct | 16 ms | 6264 KB | Output is correct |
6 | Correct | 2 ms | 632 KB | Output is correct |
7 | Correct | 3 ms | 1144 KB | Output is correct |
8 | Correct | 4 ms | 1400 KB | Output is correct |
9 | Correct | 4 ms | 2040 KB | Output is correct |
10 | Correct | 15 ms | 5240 KB | Output is correct |
11 | Correct | 15 ms | 5112 KB | Output is correct |
12 | Correct | 35 ms | 6520 KB | Output is correct |
13 | Correct | 16 ms | 6256 KB | Output is correct |
14 | Correct | 16 ms | 6264 KB | Output is correct |
15 | Correct | 74 ms | 12152 KB | Output is correct |
16 | Correct | 92 ms | 12256 KB | Output is correct |
17 | Correct | 51 ms | 11768 KB | Output is correct |
18 | Correct | 52 ms | 12536 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 55 ms | 57368 KB | Output is correct |
2 | Correct | 283 ms | 41652 KB | Output is correct |
3 | Correct | 1749 ms | 219836 KB | Output is correct |
4 | Correct | 439 ms | 88372 KB | Output is correct |
5 | Correct | 1046 ms | 171412 KB | Output is correct |
6 | Execution timed out | 2086 ms | 311480 KB | Time limit exceeded |
7 | Correct | 55 ms | 59868 KB | Output is correct |
8 | Correct | 54 ms | 57308 KB | Output is correct |
9 | Correct | 12 ms | 1784 KB | Output is correct |
10 | Correct | 5 ms | 1188 KB | Output is correct |
11 | Correct | 51 ms | 56864 KB | Output is correct |
12 | Correct | 7 ms | 3064 KB | Output is correct |
13 | Correct | 280 ms | 41848 KB | Output is correct |
14 | Correct | 175 ms | 27384 KB | Output is correct |
15 | Correct | 136 ms | 32248 KB | Output is correct |
16 | Correct | 135 ms | 15956 KB | Output is correct |
17 | Correct | 692 ms | 87340 KB | Output is correct |
18 | Correct | 537 ms | 95380 KB | Output is correct |
19 | Correct | 435 ms | 88560 KB | Output is correct |
20 | Correct | 411 ms | 72696 KB | Output is correct |
21 | Correct | 1054 ms | 168060 KB | Output is correct |
22 | Correct | 1060 ms | 171484 KB | Output is correct |
23 | Correct | 1323 ms | 141200 KB | Output is correct |
24 | Correct | 940 ms | 165124 KB | Output is correct |
25 | Execution timed out | 2037 ms | 251908 KB | Time limit exceeded |
26 | Execution timed out | 2119 ms | 782984 KB | Time limit exceeded |
27 | Execution timed out | 2083 ms | 540180 KB | Time limit exceeded |
28 | Execution timed out | 2087 ms | 312068 KB | Time limit exceeded |
29 | Execution timed out | 2095 ms | 320556 KB | Time limit exceeded |
30 | Execution timed out | 2095 ms | 316328 KB | Time limit exceeded |
31 | Execution timed out | 2082 ms | 183320 KB | Time limit exceeded |
32 | Execution timed out | 2128 ms | 638248 KB | Time limit exceeded |