Submission #951175

#TimeUsernameProblemLanguageResultExecution timeMemory
951175MinaRagy06Bridges (APIO19_bridges)C++17
13 / 100
3022 ms2004 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long const int N = 100'005; int par[N], sz[N]; int find(int u) { if (u == par[u]) { return par[u]; } return par[u] = find(par[u]); } void join(int u, int v) { u = find(u), v = find(v); if (u == v) return; if (sz[u] < sz[v]) swap(u, v); par[v] = u; sz[u] += sz[v]; } int main() { ios_base::sync_with_stdio(0), cin.tie(0); int n, m; cin >> n >> m; array<int, 3> e[m]; for (int i = 0; i < m; i++) { cin >> e[i][0] >> e[i][1] >> e[i][2]; } int q; cin >> q; while (q--) { int t; cin >> t; if (t == 1) { int b, r; cin >> b >> r; b--; e[b][2] = r; } else { int s, w; cin >> s >> w; for (int i = 1; i <= n; i++) { par[i] = i; sz[i] = 1; } for (int i = 0; i < m; i++) { if (e[i][2] >= w) { join(e[i][0], e[i][1]); } } cout << sz[find(s)] << '\n'; } } return 0; }
#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...