이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "rail.h"
#include<bits/stdc++.h>
using namespace std;
const int maxn = 5050;
map<int,int> d[maxn];
int p[maxn], tp[maxn];
int dist(int a, int b) {
if(d[a].count(b)) return d[a][b];
return d[a][b] = getDistance(a,b);
}
void findLocation(int N, int first, int location[], int stype[]) {
int n = N;
p[0] = first;
tp[0] = 0;
// find the closest to 0
int b = -1;
for(int i = 1; i < n; i++) {
if(b == -1 || dist(0,i) < dist(0,b)) b = i;
}
p[b] = p[0]+dist(0,b);
// find the closest to b
int a = -1;
for(int i = 0; i < n; i++) {
if(i == b) continue;
if(a == -1 || dist(b,i) < dist(b,a)) a = i;
}
p[a] = p[b]-dist(b,a);
location[0] = p[0];
stype[0] = tp[0]+1;
for(int i = 1; i < n; i++) {
location[i] = dist(0,i);
stype[i] = 2;
}
}
# | 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... |