#include <algorithm>
#include <bits/stdc++.h>
#include <cassert>
using namespace std;
#define ll long long
#define ff first
#define ss second
#define ln "\n"
const ll MOD = 998244353;
const ll INF = 2e18;
vector<vector<ll>> A;
vector<array<ll, 3>> e;
void solve(){
ll n, m; cin >> n >> m;
e.resize(m); A.resize(n+1);
for (ll i=0; i<m; i++){
ll u, v, w; cin >> u >> v >> w; e[i] = {u, v, w};
A[u].push_back(i); A[v].push_back(i);
}
ll q; cin >> q;
vector<ll> vis(n+1);
ll vs=0;
while (q--){
ll typ; cin >> typ;
if (typ==1){
ll b, r; cin >> b >> r; e[b-1][2]=r;
}else{
ll s, w; cin >> s >> w;
queue<ll> que; que.push(s);
ll cnt=0; vs++; vis[s]=vs;
while (!que.empty()){
auto cur = que.front(); que.pop(); cnt++;
for (auto i:A[cur]){
ll v = e[i][0]^e[i][1]^cur;
if (vis[v]<vs and e[i][2]>=w){
vis[v]=vs; que.push(v);
}
}
}
cout << cnt << ln;
}
}
}
int main(){
ios_base::sync_with_stdio(0); cin.tie(nullptr);
ll t=1;
// cin >> t;
while (t--) solve();
}
# | 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... |