| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 153869 | dennisstar | 철로 (IOI14_rail) | C++11 | 85 ms | 652 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "rail.h"
#include <bits/stdc++.h>
using namespace std;
int ar1[5010], ar2[5010], ar3[5010];
int x, y;
int dy, my;
void findLocation(int N, int first, int location[], int stype[])
{
if (N==1) {
location[0]=first; stype[0]=1;
return ;
}
if (N==2) {
int n=getDistance(0, 1);
location[0]=first; stype[0]=1;
location[1]=first+n; stype[1]=2;
}
int i;
for (i=0; i<N; i++) {if (i!=0) ar1[i]=getDistance(0, i);}
int mn=(1<<30);
for (i=1; i<N; i++) mn=min(ar1[i], mn);
for (i=1; i<N; i++) if (mn==ar1[i]) break;
x=i;
for (i=0; i<N; i++) {if (i!=x) ar2[i]=getDistance(x, i);}
int mx=0;
for (i=0; i<N; i++) mx=max(min(ar1[i], ar2[i]), mx);
for (i=0; i<N; i++) if (mx==min(ar1[i], ar2[i])) break;
y=i;
for (i=0; i<N; i++) {if (!i!=y) ar3[i]=getDistance(y, i);}
dy=(1<<30);
for (i=0; i<N; i++) if (i!=y) dy=min(dy, ar3[i]);
for (i=0; i<N; i++) if (dy==ar3[i]) {my=i; break;}
if (ar1[x]+ar2[y]==ar3[x]) {}
else if (dy+ar2[my]+ar1[x]==ar1[y]) {}
else if (ar1[x]+ar1[y]==ar2[y]) {}
else if (ar1[x]+ar1[y]==dy+ar2[my]) {}
else {
assert(false);
}
}
컴파일 시 표준 에러 (stderr) 메시지
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
