제출 #772370

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

#define int long long
#define ll long long
#define pii pair<int, int>
#define F first
#define S second
#define FOR(i, n) for (int i = 0; i < n; i++)
#define PB push_back
#define ALL(x) x.begin(), x.end()
#define NYOOM ios::sync_with_stdio(0); cin.tie(0);

// solving ST 4: offline query 

const int maxn = 1e5 + 10;
int n, m, u[maxn], v[maxn], d[maxn], q;
vector<int> adj[maxn]; // idx
set<int> seen;

void dfs(int s, int w){
    seen.insert(s);
    for (auto idx : adj[s]){
        int t = (s == u[idx] ? v[idx] : u[idx]);
        if (seen.count(t) || d[idx] < w) continue;
        dfs(t, w);
    }
}

signed main(){
    NYOOM;
    cin >> n >> m;
    for (int i = 1; i <= m; i++){
        cin >> u[i] >> v[i] >> d[i];
        adj[u[i]].PB(i); adj[v[i]].PB(i);
    }
    cin >> q;
    FOR(i, q){
        int t; cin >> t; 
        if (t == 1){
            int b, r; cin >> b >> r;
            d[b] = r;
        }   
        if (t == 2){
            int s, w; cin >> s >> w;
            seen.clear(); dfs(s, w);
            cout << seen.size() << endl;
        }
    }
}
#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...