Submission #1174667

#TimeUsernameProblemLanguageResultExecution timeMemory
1174667MuhammetBridges (APIO19_bridges)C++17
13 / 100
55 ms48968 KiB
#include "bits/stdc++.h" using namespace std; const int N = 1e3 + 5; vector <int> v[N], vis; multiset <int> mp[N][N]; int ans; void dfs(int x, int w) { vis[x] = true; ans++; for(auto i : v[x]) { if(!vis[i] and *mp[x][i].rbegin() >= w) { dfs(i, w); } } } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n, m; cin >> n >> m; vector <int> u1(m+1), u2(m+1), d(m+1); for(int i = 1; i <= m; i++) { cin >> u1[i] >> u2[i] >> d[i]; v[u1[i]].push_back(u2[i]); v[u2[i]].push_back(u1[i]); mp[u1[i]][u2[i]].insert(d[i]), mp[u2[i]][u1[i]].insert(d[i]); } int q; cin >> q; for(int i = 1; i <= q; i++) { int t; cin >> t; if(t == 1) { int b, r; cin >> b >> r; mp[u1[b]][u2[b]].erase(mp[u1[b]][u2[b]].find(d[b])); mp[u2[b]][u1[b]].erase(mp[u2[b]][u1[b]].find(d[b])); d[b] = r; mp[u1[b]][u2[b]].insert(r); mp[u2[b]][u1[b]].insert(r); } else { int s, w; cin >> s >> w; ans = 0; vis.assign(n+1, 0); dfs(s, w); cout << ans << '\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...