Submission #1366837

#TimeUsernameProblemLanguageResultExecution timeMemory
1366837hmms127Bridges (APIO19_bridges)C++20
0 / 100
3093 ms10856 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=1e5+5,inf=1e18;
using pr=pair<int,int>;
using ar=array<int,3>;
int n,m,q;
int u[N],v[N],d[N],ans;
bool vis[N];vector<pr>adj[N];
void dfs(int node,int w){
    vis[node]=1;
    for (auto it:adj[node]) {
        if (vis[it.first])continue;
        if (d[it.second]<w)continue;
        ans++;
        dfs(it.first,w);
    }
    vis[node]=0;
}

signed main(){
    ios::sync_with_stdio(false);cin.tie(nullptr);
    cin>>n>>m;
    f1(m) {
        cin>>u[i]>>v[i]>>d[i];
        adj[u[i]].pb({v[i],i});
        adj[v[i]].pb({u[i],i});
    }
    int q;cin>>q;
    while (q--) {
        int t,x,y;cin>>t>>x>>y;
        if (t==1)d[x-1]=y;
        else {
            ans=1;dfs(x,y);
            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...