#include <bits/stdc++.h>
using namespace std;
const int MAXN = 50000;
vector<pair<int,int>> adj [MAXN]; // id
vector<int> weights;
int main(){
int n,m;
cin>>n>>m;
for(int i = 0;i<m;i++){
int u,v,d;
cin>>u>>v>>d;
u--;
v--;
adj[u].push_back({v,i});
adj[v].push_back({u,i});
weights.push_back(d);
}
int q;
cin>>q;
for(int c = 0;c<q;c++){
int t;
cin>>t;
if(t==1){
int b,r;
cin>>b>>r;
weights[b-1] = r;
}else{
int s,w;
cin>>s>>w;
queue<int> bfs;
vector<bool> visited (n, false);
bfs.push(s-1);
visited[s-1] = true;
int ans = 1;
while(!bfs.empty()){
int curr = bfs.front();
bfs.pop();
for(int i = 0; i < adj[curr].size();i++){
//cout<<weights[adj[curr][i].second]<<endl;
if(!visited[adj[curr][i].first]&&weights[adj[curr][i].second]>=w){
bfs.push(adj[curr][i].first);
visited[adj[curr][i].first] = true;
ans++;
}
}
}
cout<<ans<<endl;
}
}
}
/*
*/
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |