이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "citymapping.h"
#include <bits/stdc++.h>
using namespace std;
using lint = long long;
using pil = pair<int, long long>;
void find_roads(int N, int Q, int A[], int B[], int W[]) {
const int ROOT = 1;
vector<lint> dist_to_root(N+1);
for(int u = 1; u <= N; u++) {
if(u != ROOT) dist_to_root[u] = get_distance(ROOT, u);
}
vector<int> internal(N);
iota(internal.begin(), internal.end(), 1);
sort(internal.begin(), internal.end(), [&](const int &p, const int &q) {
return dist_to_root[p] < dist_to_root[q];
});
int e = 0;
for(unsigned i = 1; i < internal.size(); i++) {
int u = internal[i];
int v = -1; lint d = 1e18;
for(unsigned j = 0; j < i; j++) {
int p = internal[j];
lint c = (j == 0) ? dist_to_root[u] : get_distance(u, p);
if(v == -1 || d > c) {
d = c;
v = p;
}
}
A[e] = u; B[e] = v; W[e] = d;
e += 1;
}
}
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |