#include "citymapping.h"
#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
int parent[1005];
int find(int x){
if(x==parent[x]) return x;
return parent[x]=find(parent[x]);
}
void joinset(int x,int y){
x=find(x);
y=find(y);
parent[x]=y;
}
bool sameset(int x,int y){
return find(x) == find(y) ;
}
void find_roads(int N, int Q, int A[], int B[], int W[]) {
long long dis[N+1][N+1];
int k=0;
for (int i = 1; i <= N; ++i)
{
parent[i]=i;
for (int j = i+1; j <= N; ++j)
{
dis[j][i] = dis[i][j] = get_distance(i,j);
}
}
for (int i = 1; i <= N; ++i)
{
pair<long long,int> cur={1e18,-1};
for (int j = 1; j <= N; ++j)
{
if(i==j) continue;
if(sameset(i,j)) continue;
cur=min(cur,{dis[i][j],j});
}
if(cur == make_pair(1ll*1000000000000000000,-1)) continue;
joinset(i,cur.se);
A[k]=i;
B[k]=cur.se;
W[k]=cur.fi;
k++;
}
return;
}
# | 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... |