Submission #1091628

#TimeUsernameProblemLanguageResultExecution timeMemory
1091628raphaelpSightseeing (NOI14_sightseeing)C++14
15 / 25
2269 ms123984 KiB
#include <bits/stdc++.h> using namespace std; vector<int> p; int find(int x) { return (p[x] == x) ? x : p[x] = find(p[x]); } int main() { int N, M, Q; cin >> N >> M >> Q; vector<vector<int>> AR; vector<vector<pair<int, int>>> buckets(100010); for (int i = 0; i < M; i++) { int a, b, c; cin >> a >> b >> c; a--, b--; buckets[c].push_back({a, b}); } p.assign(N, 0); for (int i = 0; i < N; i++) p[i] = i; vector<int> dist(N); vector<vector<int>> contains(N); for (int i = 0; i < N; i++) contains[i].push_back(i); for (int i = 100000; i >= 0; i--) { for (int j = 0; j < buckets[i].size(); j++) { int x = find(buckets[i][j].first), y = find(buckets[i][j].second); if (x == y) continue; if (contains[x].size() > contains[y].size()) swap(x, y); if (find(0) == x) swap(x, y); p[x] = y; for (auto val : contains[x]) { if (y == find(0)) dist[val] = i; contains[y].push_back(val); } } } for (int i = 0; i < Q; i++) { int x; cin >> x; cout << dist[x - 1] << '\n'; } }

Compilation message (stderr)

sightseeing.cpp: In function 'int main()':
sightseeing.cpp:28:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |         for (int j = 0; j < buckets[i].size(); j++)
      |                         ~~^~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...