제출 #1174758

#제출 시각아이디문제언어결과실행 시간메모리
1174758Halym2007Bridges (APIO19_bridges)C++17
13 / 100
54 ms47944 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define sz size() #define ff first #define ss second #define pb push_back #define pii pair <int, int> #define dur exit(0) #define dur1 return(0) const int N = 1e3 + 5; vector <int> v[N]; int n, m, q, l[N], r[N], vis[N], w[N]; multiset <int> dis[N][N]; void dfs (int x, int val) { vis[x] = 1; for (int i : v[x]) { if (vis[i]) continue; int jj = *dis[x][i].rbegin(); if (jj < val) continue; dfs (i, val); } } int main () { // freopen ("input.txt", "r", stdin); ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin >> n >> m; for (int i = 1; i <= m; ++i) { cin >> l[i] >> r[i] >> w[i]; dis[l[i]][r[i]].insert (w[i]); dis[r[i]][l[i]].insert (w[i]); v[l[i]].pb (r[i]); v[r[i]].pb (l[i]); } cin >> q; while ( q-- ) { int l1, r1, typ; cin >> typ >> l1 >> r1; if (typ == 1) { dis[l[l1]][r[l1]].erase (dis[l[l1]][r[l1]].find (w[l1])); dis[r[l1]][l[l1]].erase (dis[r[l1]][l[l1]].find (w[l1])); dis[l[l1]][r[l1]].insert (r1); dis[r[l1]][l[l1]].insert (r1); w[l1] = r1; } else { dfs (l1, r1); int cyk = 0; for (int i = 1; i <= n; ++i) { cyk += vis[i]; vis[i] = 0; } cout << cyk << "\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...