#include <bits/stdc++.h>
#include "citymapping.h"
using namespace std;
const int MAX_N = 1005;
long long dist[MAX_N][MAX_N];
vector <pair <long long, int>> graph[MAX_N];
vector <tuple <int, int, int>> tree;
bool visited[MAX_N];
void dfs(int u, int p) {
visited[u] = true;
if(p != -1) {
tree.emplace_back(u, p, dist[u][p]);
}
for(auto [w, v] : graph[u]) {
if(visited[v] == true) {
continue;
}
if(p == -1) {
dfs(v, u);
}
else {
if(dist[v][u] + dist[u][p] == dist[v][p]) {
dfs(v, u);
}
}
}
}
void find_roads(int N, int Q, int A[], int B[], int W[]) {
if(Q == 500000) {
for(int i = 1; i <= N; i++) {
for(int j = i + 1; j <= N; j++) {
dist[i][j] = dist[j][i] = get_distance(i, j);
graph[i].emplace_back(dist[i][j], j);
graph[j].emplace_back(dist[j][i], i);
}
}
for(int i = 1; i <= N; i++) {
sort(graph[i].begin(), graph[i].end());
}
dfs(1, -1);
for(int i = 0; i < N - 1; i++) {
A[i] = get <0> (tree[i]);
B[i] = get <1> (tree[i]);
W[i] = get <2> (tree[i]);
}
}
else if(Q == 12000) {
int node = 1;
long long furthest = 0;
for(int i = 2; i <= N; i++) {
dist[1][i] = get_distance(1, i);
if(furthest < dist[1][i]) {
furthest = dist[1][i];
node = i;
}
}
vector <pair <long long, int>> adj;
for(int i = 1; i <= N; i++) {
if(i == node) {
continue;
}
dist[node][i] = get_distance(node, i);
adj.emplace_back(dist[node][i], i);
}
sort(adj.begin(), adj.end());
int prv = node, M = 0;
long long prvDist = 0;
for(auto [nowDist, now] : adj) {
A[M] = prv;
B[M] = now;
W[M] = nowDist - prvDist;
M++;
prvDist = nowDist;
prv = now;
}
}
else {
// do something
}
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
109 ms |
24648 KB |
Correct: 498501 out of 500000 queries used. |
2 |
Correct |
115 ms |
24656 KB |
Correct: 499500 out of 500000 queries used. |
3 |
Correct |
114 ms |
24396 KB |
Correct: 492528 out of 500000 queries used. |
4 |
Correct |
110 ms |
24524 KB |
Correct: 494515 out of 500000 queries used. |
5 |
Correct |
129 ms |
24588 KB |
Correct: 498501 out of 500000 queries used. |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
109 ms |
24648 KB |
Correct: 498501 out of 500000 queries used. |
2 |
Correct |
115 ms |
24656 KB |
Correct: 499500 out of 500000 queries used. |
3 |
Correct |
114 ms |
24396 KB |
Correct: 492528 out of 500000 queries used. |
4 |
Correct |
110 ms |
24524 KB |
Correct: 494515 out of 500000 queries used. |
5 |
Correct |
129 ms |
24588 KB |
Correct: 498501 out of 500000 queries used. |
6 |
Correct |
96 ms |
24556 KB |
Correct: 495510 out of 500000 queries used. |
7 |
Correct |
101 ms |
24628 KB |
Correct: 497503 out of 500000 queries used. |
8 |
Correct |
101 ms |
24600 KB |
Correct: 497503 out of 500000 queries used. |
9 |
Correct |
114 ms |
24556 KB |
Correct: 495510 out of 500000 queries used. |
10 |
Correct |
129 ms |
24564 KB |
Correct: 496506 out of 500000 queries used. |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
468 KB |
Correct: 1980 out of 12000 queries used. |
2 |
Correct |
1 ms |
468 KB |
Correct: 1984 out of 12000 queries used. |
3 |
Correct |
1 ms |
468 KB |
Correct: 1998 out of 12000 queries used. |
4 |
Correct |
1 ms |
468 KB |
Correct: 1984 out of 12000 queries used. |
5 |
Correct |
1 ms |
468 KB |
Correct: 1980 out of 12000 queries used. |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
468 KB |
Correct: 1980 out of 12000 queries used. |
2 |
Correct |
1 ms |
468 KB |
Correct: 1984 out of 12000 queries used. |
3 |
Correct |
1 ms |
468 KB |
Correct: 1998 out of 12000 queries used. |
4 |
Correct |
1 ms |
468 KB |
Correct: 1984 out of 12000 queries used. |
5 |
Correct |
1 ms |
468 KB |
Correct: 1980 out of 12000 queries used. |
6 |
Correct |
1 ms |
468 KB |
Correct: 1994 out of 12000 queries used. |
7 |
Correct |
2 ms |
504 KB |
Correct: 1990 out of 12000 queries used. |
8 |
Correct |
1 ms |
468 KB |
Correct: 1998 out of 12000 queries used. |
9 |
Correct |
1 ms |
504 KB |
Correct: 1992 out of 12000 queries used. |
10 |
Correct |
1 ms |
468 KB |
Correct: 1986 out of 12000 queries used. |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
109 ms |
24648 KB |
Correct: 498501 out of 500000 queries used. |
2 |
Correct |
115 ms |
24656 KB |
Correct: 499500 out of 500000 queries used. |
3 |
Correct |
114 ms |
24396 KB |
Correct: 492528 out of 500000 queries used. |
4 |
Correct |
110 ms |
24524 KB |
Correct: 494515 out of 500000 queries used. |
5 |
Correct |
129 ms |
24588 KB |
Correct: 498501 out of 500000 queries used. |
6 |
Correct |
96 ms |
24556 KB |
Correct: 495510 out of 500000 queries used. |
7 |
Correct |
101 ms |
24628 KB |
Correct: 497503 out of 500000 queries used. |
8 |
Correct |
101 ms |
24600 KB |
Correct: 497503 out of 500000 queries used. |
9 |
Correct |
114 ms |
24556 KB |
Correct: 495510 out of 500000 queries used. |
10 |
Correct |
129 ms |
24564 KB |
Correct: 496506 out of 500000 queries used. |
11 |
Correct |
1 ms |
468 KB |
Correct: 1980 out of 12000 queries used. |
12 |
Correct |
1 ms |
468 KB |
Correct: 1984 out of 12000 queries used. |
13 |
Correct |
1 ms |
468 KB |
Correct: 1998 out of 12000 queries used. |
14 |
Correct |
1 ms |
468 KB |
Correct: 1984 out of 12000 queries used. |
15 |
Correct |
1 ms |
468 KB |
Correct: 1980 out of 12000 queries used. |
16 |
Correct |
1 ms |
468 KB |
Correct: 1994 out of 12000 queries used. |
17 |
Correct |
2 ms |
504 KB |
Correct: 1990 out of 12000 queries used. |
18 |
Correct |
1 ms |
468 KB |
Correct: 1998 out of 12000 queries used. |
19 |
Correct |
1 ms |
504 KB |
Correct: 1992 out of 12000 queries used. |
20 |
Correct |
1 ms |
468 KB |
Correct: 1986 out of 12000 queries used. |
21 |
Incorrect |
2 ms |
468 KB |
Reported list of edges differ from actual. |
22 |
Halted |
0 ms |
0 KB |
- |