Submission #103443

#TimeUsernameProblemLanguageResultExecution timeMemory
103443SecretAgent007Sightseeing (NOI14_sightseeing)C++17
25 / 25
3117 ms100376 KiB
#include <bits/stdc++.h> using namespace std; #define double long double const int INF = INT_MAX; vector< vector< pair< int, int > > > Graph; vector< int > U; vector< int > dist; int getParents(int a){ if(U[a] == a) return a; else return U[a] = getParents(U[a]); } void Union(int a, int b){ U[getParents(a)] = getParents(b); } void dfs(int node, int last){ for(auto a : Graph[node]){ if(a.first == last) continue; dist[a.first] = min(a.second, dist[node]); dfs(a.first, node); } } signed main(){ int v, e, q; cin >> v >> e >> q; Graph.resize(v+1); U.resize(v+1); dist.resize(v+1, INF); vector< tuple<int, int, int> > ve(e); for(int i = 0; i <= v; i++) U[i] = i; for(int i = 0; i < e ; i++){ int a, b, c; scanf("%d%d%d",&a,&b,&c); ve[i] = make_tuple(c,a,b); } sort(ve.begin(), ve.end(), greater<tuple<int, int, int> >()); for(int i = 0; i < e; i++){ auto tup = ve[i]; int c = get<0>(tup); int a = get<1>(tup); int b = get<2>(tup); if(getParents(a) == getParents(b)) continue; else{ Union(a,b); Graph[a].push_back(make_pair(b,c)); Graph[b].push_back(make_pair(a,c)); } } dfs(1,-1); while(q--){ int a; scanf("%d", &a); cout << dist[a] << '\n'; } } /* 4 4 2 1 2 10 1 3 30 2 4 20 3 4 5 3 4 */

Compilation message (stderr)

sightseeing.cpp: In function 'int main()':
sightseeing.cpp:46:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d%d",&a,&b,&c);
         ~~~~~^~~~~~~~~~~~~~~~~~~
sightseeing.cpp:71:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &a);
         ~~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...