제출 #1229403

#제출 시각아이디문제언어결과실행 시간메모리
1229403ripolas다리 (APIO19_bridges)C++20
13 / 100
3095 ms5356 KiB
#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 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...