# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
785283 | 2023-07-17T07:59:56 Z | Hanksburger | 철로 (IOI14_rail) | C++17 | 52 ms | 4436 KB |
#include "rail.h" #include <bits/stdc++.h> using namespace std; int x[1000005], res1[5005], res2[5005]; vector<pair<int, int> > v, w; void findLocation(int n, int k, int a[], int b[]) { a[0]=k; b[0]=1; x[a[0]]=b[0]; if (n==1) return; int ind, mn=1e9, cur=0; for (int i=1; i<n; i++) { res1[i]=getDistance(0, i); if (mn>res1[i]) { mn=res1[i]; ind=i; } } res2[0]=res1[ind]; a[ind]=a[0]+res1[ind]; b[ind]=2; x[a[ind]]=b[ind]; for (int i=1; i<n; i++) { if (i==ind) continue; res2[i]=getDistance(ind, i); if (res1[i]==res1[ind]+res2[i]) { if (res2[i]<res1[ind]) { a[i]=a[ind]-res2[i]; b[i]=1; x[a[i]]=b[i]; } else v.push_back({res2[i], i}); } else w.push_back({res1[i], i}); } sort(v.begin(), v.end()); sort(w.begin(), w.end()); for (int i=0; i<v.size(); i++) { int u=v[i].second; int res=getDistance(cur, u); if (x[a[cur]+(res2[cur]+res-res2[u])/2]==1) { a[u]=a[cur]+res; b[u]=2; } else { a[u]=a[ind]-res2[u]; b[u]=1; cur=u; } x[a[u]]=b[u]; } cur=ind; for (int i=0; i<w.size(); i++) { int u=w[i].second; int res=getDistance(cur, u); if (x[a[cur]-(res1[cur]+res-res1[u])/2]==2) { a[u]=a[cur]-res; b[u]=1; } else { a[u]=a[0]+res1[u]; b[u]=2; cur=u; } x[a[u]]=b[u]; } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 340 KB | Output is correct |
2 | Correct | 1 ms | 340 KB | Output is correct |
3 | Correct | 1 ms | 340 KB | Output is correct |
4 | Correct | 1 ms | 340 KB | Output is correct |
5 | Correct | 1 ms | 388 KB | Output is correct |
6 | Correct | 1 ms | 384 KB | Output is correct |
7 | Correct | 1 ms | 340 KB | Output is correct |
8 | Correct | 1 ms | 340 KB | Output is correct |
9 | Correct | 1 ms | 340 KB | Output is correct |
10 | Correct | 1 ms | 340 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 340 KB | Output is correct |
2 | Correct | 1 ms | 340 KB | Output is correct |
3 | Correct | 1 ms | 340 KB | Output is correct |
4 | Correct | 1 ms | 340 KB | Output is correct |
5 | Correct | 1 ms | 380 KB | Output is correct |
6 | Correct | 1 ms | 340 KB | Output is correct |
7 | Correct | 1 ms | 340 KB | Output is correct |
8 | Correct | 1 ms | 340 KB | Output is correct |
9 | Correct | 1 ms | 340 KB | Output is correct |
10 | Correct | 1 ms | 340 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 47 ms | 4172 KB | Output is correct |
2 | Correct | 45 ms | 4236 KB | Output is correct |
3 | Correct | 46 ms | 4352 KB | Output is correct |
4 | Correct | 47 ms | 4344 KB | Output is correct |
5 | Correct | 46 ms | 4328 KB | Output is correct |
6 | Correct | 49 ms | 4224 KB | Output is correct |
7 | Correct | 47 ms | 4232 KB | Output is correct |
8 | Correct | 45 ms | 4300 KB | Output is correct |
9 | Correct | 46 ms | 4172 KB | Output is correct |
10 | Correct | 47 ms | 4436 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 45 ms | 4100 KB | Output is correct |
2 | Correct | 46 ms | 4224 KB | Output is correct |
3 | Correct | 48 ms | 4352 KB | Output is correct |
4 | Correct | 45 ms | 4368 KB | Output is correct |
5 | Correct | 46 ms | 4364 KB | Output is correct |
6 | Correct | 52 ms | 4232 KB | Output is correct |
7 | Correct | 46 ms | 4232 KB | Output is correct |
8 | Correct | 45 ms | 4228 KB | Output is correct |
9 | Correct | 45 ms | 4256 KB | Output is correct |
10 | Correct | 46 ms | 4360 KB | Output is correct |
11 | Correct | 45 ms | 4224 KB | Output is correct |
12 | Correct | 45 ms | 4300 KB | Output is correct |
13 | Correct | 47 ms | 4220 KB | Output is correct |
14 | Correct | 49 ms | 4216 KB | Output is correct |
15 | Correct | 45 ms | 4216 KB | Output is correct |
16 | Correct | 45 ms | 4348 KB | Output is correct |
17 | Correct | 51 ms | 4428 KB | Output is correct |
18 | Correct | 45 ms | 4236 KB | Output is correct |
19 | Correct | 45 ms | 4364 KB | Output is correct |
20 | Correct | 45 ms | 4344 KB | Output is correct |