Submission #1174662

#TimeUsernameProblemLanguageResultExecution timeMemory
1174662Muhammet다리 (APIO19_bridges)C++17
0 / 100
20 ms48960 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]));
			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...