Submission #1366769

#TimeUsernameProblemLanguageResultExecution timeMemory
1366769hmms127Bridges (APIO19_bridges)C++20
13 / 100
3095 ms4752 KiB
#include "bits/stdc++.h"
using namespace std;
#define f1(n) for(int i=0;i<n;i++)
#define f2(m,n,q) for(int i=m;i<n;i+=q)
#define int long long
#define pb push_back
constexpr int N=3e5+5,inf=1e18;
using pr=pair<int,int>;
using ar=array<int,3>;
int n,m,q;
int u[N],v[N],d[N];
bool vis[N];
void dfs(int node,int w){
    vis[node]=1;
    f1(m){
        if(d[i]<w) continue;
        int ch=-1;
        if(u[i]==node)ch=v[i];
        else if(v[i]==node)ch=u[i];
        if(ch!=-1 &&!vis[ch]){
            dfs(ch,w);
        }
    }
}

signed main(){
    ios::sync_with_stdio(false);cin.tie(nullptr);
    cin>>n>>m;
    f1(m) {
        cin>>u[i]>>v[i]>>d[i];
    }
    int q;cin>>q;
    while (q--) {
        int t,x,y;cin>>t>>x>>y;
        if (t==1)d[x-1]=y;
        else {
            memset(vis,0,sizeof vis);
            dfs(x,y);
            int ans=0;
            f2(1,n+1,1)ans+=(vis[i]);
            cout<<ans<<'\n';
        }
    }

}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...