# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
39363 | 2018-01-12T20:41:09 Z | wzy | 관광 (NOI14_sightseeing) | C++14 | 2343 ms | 226420 KB |
#include <bits/stdc++.h> using namespace std; #define F first #define S second #define pii pair<int,int> #define ieps 5000050 #define find alice #define join wonderland #define eps (int) 1e9 #define mp make_pair #define pb push_back int pai[ieps] , n , m , q , peso[ieps] , custo[ieps]; int find(int x){ return pai[x] == x ? x : pai[x] = find(pai[x]); } void join(int u , int v){ u = find(u) , v = find(v); if(peso[u] > peso[v]) swap(u, v); pai[u] = v , peso[v] += peso[u]; } struct edges{ int x, y , z; }; vector<pii> adj[ieps]; bool cmp(edges a , edges b){ return a.z > b.z; } void dfs(int x , int y){ for(auto t : adj[x]){ if(t.F == y) continue; custo[t.F] = min(t.S , custo[x]); dfs(t.F, x); } } int32_t main(){ scanf("%d%d%d" , &n , &m , &q); vector<edges> v(m); for(int i = 0 ; i < n; i++){ pai[i] = i , peso[i] = 0; } for(int i = 0 ; i < m ; i++){ scanf("%d%d%d" , &v[i].x , &v[i].y, &v[i].z); v[i].x -- , v[i].y--; } sort(v.begin() , v.end() , cmp); for(int i = 0 ; i < m; i++){ if(find(v[i].x) != find(v[i].y)){ join(v[i].x , v[i].y); adj[v[i].x].pb(pii(v[i].y , v[i].z)); adj[v[i].y].pb(pii(v[i].x , v[i].z)); } } for(int i = 0 ; i < ieps; i++) custo[i] = eps; dfs(0 , 0); while(q--){ int x; scanf("%d" , &x); printf("%d\n" , custo[x-1]); } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 39 ms | 177800 KB | Output is correct |
2 | Correct | 36 ms | 177800 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 49 ms | 177932 KB | Output is correct |
2 | Correct | 29 ms | 177800 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 86 ms | 179728 KB | Output is correct |
2 | Correct | 76 ms | 179472 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2343 ms | 226420 KB | Output is correct |
2 | Runtime error | 0 ms | 0 KB | -1: Interrupted system call |