제출 #1032622

#제출 시각아이디문제언어결과실행 시간메모리
1032622stdfloatBridges (APIO19_bridges)C++17
0 / 100
50 ms6852 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; #define ff first #define ss second #define pii pair<int, int> vector<int> p, sz; int fnd(int x) { return p[x] = (x == p[x] ? x : fnd(p[x])); } void uni(int x, int y) { x = fnd(x); y = fnd(y); if (x == y) return; p[x] = y; sz[y] += sz[x]; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, m; cin >> n >> m; vector<pair<pii, pii>> v; while (m--) { int x, y, d; cin >> x >> y >> d; v.push_back({{d, INT_MAX}, {--x, --y}}); } int q; cin >> q; for (int i = 0; i < q; i++) { int t, s, w; cin >> t >> s >> w; v.push_back({{w, i}, {--s, 0}}); } p.assign(n, 0); sz.assign(n, 1); iota(p.begin(), p.end(), 0); sort(v.rbegin(), v.rbegin()); vector<int> ans(q); for (auto i : v) { if (i.ff.ss == INT_MAX) uni(i.ss.ff, i.ss.ss); else ans[i.ff.ss] = sz[fnd(i.ss.ff)]; } for (auto i : ans) if (i) cout << i << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...