이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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(n);
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 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |