# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
66392 | 2018-08-10T11:16:10 Z | ansol4328 | 문명 (KOI17_civilization) | C++ | 1000 ms | 44660 KB |
#include<stdio.h> #include<memory.h> #include<queue> using namespace std; int n, k; int visit[2002][2002]; struct uf { int p[4000002]; int cnt; bool st[4000002]; void setup(int a) { cnt=a; memset(p,-1,sizeof(p)); memset(st,false,sizeof(st)); } int f(int v) { if(p[v]==-1) return v; p[v]=f(p[v]); return p[v]; } void u(int v1, int v2) // v2 subtree -> v1 subtree { v1=f(v1); v2=f(v2); if(v1==v2) return; if(st[v2]) cnt--; p[v2]=v1; } }; uf T; queue<int> Q; int main() { scanf("%d %d",&n,&k); T.setup(k); for(int i=0 ; i<k ; i++) { int x, y; scanf("%d %d",&y,&x); T.st[(y-1)*n+x-1]=true; Q.push((y-1)*n+x-1); visit[y][x]=1; } int res=1; int dy[4]={-1,0,1,0}; int dx[4]={0,1,0,-1}; while(T.cnt!=1) { int y=Q.front()/n+1; int x=Q.front()%n+1; Q.pop(); res=max(res,visit[y][x]); for(int i=0 ; i<4 ; i++) { if(!(y+dy[i]>=1 && y+dy[i]<=n && x+dx[i]>=1 && x+dx[i]<=n)) continue; if(visit[y+dy[i]][x+dx[i]]==0) { visit[y+dy[i]][x+dx[i]]=visit[y][x]+1; T.u((y-1)*n+x-1,(y+dy[i]-1)*n+x+dx[i]-1); Q.push((y+dy[i]-1)*n+x+dx[i]-1); } else if(visit[y+dy[i]][x+dx[i]]<visit[y][x]+1) { T.u((y-1)*n+x-1,(y+dy[i]-1)*n+x+dx[i]-1); res=max(res,visit[y][x]); } if(T.cnt==1) break; } } printf("%d",res-1); return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 19 ms | 20344 KB | Output is correct |
2 | Correct | 18 ms | 20344 KB | Output is correct |
3 | Correct | 19 ms | 20368 KB | Output is correct |
4 | Correct | 20 ms | 20388 KB | Output is correct |
5 | Correct | 18 ms | 20608 KB | Output is correct |
6 | Correct | 19 ms | 20608 KB | Output is correct |
7 | Correct | 19 ms | 20608 KB | Output is correct |
8 | Correct | 20 ms | 20608 KB | Output is correct |
9 | Correct | 20 ms | 20608 KB | Output is correct |
10 | Correct | 19 ms | 20608 KB | Output is correct |
11 | Correct | 19 ms | 20608 KB | Output is correct |
12 | Correct | 19 ms | 20620 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 19 ms | 20344 KB | Output is correct |
2 | Correct | 18 ms | 20344 KB | Output is correct |
3 | Correct | 19 ms | 20368 KB | Output is correct |
4 | Correct | 20 ms | 20388 KB | Output is correct |
5 | Correct | 18 ms | 20608 KB | Output is correct |
6 | Correct | 19 ms | 20608 KB | Output is correct |
7 | Correct | 19 ms | 20608 KB | Output is correct |
8 | Correct | 20 ms | 20608 KB | Output is correct |
9 | Correct | 20 ms | 20608 KB | Output is correct |
10 | Correct | 19 ms | 20608 KB | Output is correct |
11 | Correct | 19 ms | 20608 KB | Output is correct |
12 | Correct | 97 ms | 27920 KB | Output is correct |
13 | Correct | 79 ms | 27920 KB | Output is correct |
14 | Correct | 87 ms | 27920 KB | Output is correct |
15 | Correct | 70 ms | 27920 KB | Output is correct |
16 | Correct | 26 ms | 27920 KB | Output is correct |
17 | Correct | 301 ms | 30448 KB | Output is correct |
18 | Correct | 327 ms | 31124 KB | Output is correct |
19 | Correct | 309 ms | 32112 KB | Output is correct |
20 | Correct | 268 ms | 32636 KB | Output is correct |
21 | Correct | 329 ms | 33532 KB | Output is correct |
22 | Correct | 17 ms | 33532 KB | Output is correct |
23 | Correct | 72 ms | 33532 KB | Output is correct |
24 | Correct | 19 ms | 20620 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 19 ms | 20344 KB | Output is correct |
2 | Correct | 18 ms | 20344 KB | Output is correct |
3 | Correct | 19 ms | 20368 KB | Output is correct |
4 | Correct | 20 ms | 20388 KB | Output is correct |
5 | Correct | 18 ms | 20608 KB | Output is correct |
6 | Correct | 19 ms | 20608 KB | Output is correct |
7 | Correct | 19 ms | 20608 KB | Output is correct |
8 | Correct | 20 ms | 20608 KB | Output is correct |
9 | Correct | 20 ms | 20608 KB | Output is correct |
10 | Correct | 19 ms | 20608 KB | Output is correct |
11 | Correct | 19 ms | 20608 KB | Output is correct |
12 | Correct | 97 ms | 27920 KB | Output is correct |
13 | Correct | 79 ms | 27920 KB | Output is correct |
14 | Correct | 87 ms | 27920 KB | Output is correct |
15 | Correct | 70 ms | 27920 KB | Output is correct |
16 | Correct | 26 ms | 27920 KB | Output is correct |
17 | Correct | 301 ms | 30448 KB | Output is correct |
18 | Correct | 327 ms | 31124 KB | Output is correct |
19 | Correct | 309 ms | 32112 KB | Output is correct |
20 | Correct | 268 ms | 32636 KB | Output is correct |
21 | Correct | 329 ms | 33532 KB | Output is correct |
22 | Correct | 17 ms | 33532 KB | Output is correct |
23 | Correct | 72 ms | 33532 KB | Output is correct |
24 | Correct | 211 ms | 39340 KB | Output is correct |
25 | Correct | 274 ms | 39780 KB | Output is correct |
26 | Correct | 185 ms | 39780 KB | Output is correct |
27 | Correct | 207 ms | 39780 KB | Output is correct |
28 | Correct | 155 ms | 39780 KB | Output is correct |
29 | Correct | 974 ms | 42668 KB | Output is correct |
30 | Correct | 850 ms | 42668 KB | Output is correct |
31 | Execution timed out | 1066 ms | 44660 KB | Time limit exceeded |
32 | Halted | 0 ms | 0 KB | - |