제출 #1173924

#제출 시각아이디문제언어결과실행 시간메모리
1173924stdfloat다리 (APIO19_bridges)C++17
13 / 100
3095 ms6016 KiB
#include <bits/stdc++.h>
using namespace std;

using ll = long long;

int main() {
	ios::sync_with_stdio(false); cin.tie(nullptr);

	int n, m;
	cin >> n >> m;

	vector<pair<int, int>> E[n];
	vector<int> u(m), v(m), D(m);
	for (int i = 0; i < m; i++) {
		cin >> u[i] >> v[i] >> D[i]; u[i]--; v[i]--;
		
		E[u[i]].push_back({v[i], i});
		E[v[i]].push_back({u[i], i});
	}

	int q;
	cin >> q;
	while (q--) {
		int t;
		cin >> t;
	
		if (t == 1) {
			int b, r;
			cin >> b >> r; b--;

			D[b] = r;
		}
		else {
			int s, w;
			cin >> s >> w; s--;

			queue<int> q;
			vector<bool> vis(n);
			q.push(s); vis[s] = true;
			while (!q.empty()) {
				int x = q.front(); q.pop();

				for (auto [i, d] : E[x]) {
					if (!vis[i] && w <= D[d]) {
						q.push(i);
						vis[i] = true;
					}
				}
			}

			cout << count(vis.begin(), vis.end(), true) << '\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...