Submission #1281332

#TimeUsernameProblemLanguageResultExecution timeMemory
1281332Faisal_SaqibBridges (APIO19_bridges)C++20
13 / 100
3093 ms9536 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int N=1e5+10;
// int par[N],sz[N],ans[N];
// int get(int x)
// {
//     return (par[x]==x?x:par[x]=get(par[x]));
// }
// void join(int x,int y)
// {
//     x=get(x);
//     y=get(y);
//     if(x==y)return;
//     sz[x]+=sz[y];
//     par[y]=x;
// }
vector<pair<ll,ll>> ma[N];
bool vis[N];
ll w[N];
ll sz=0,cw=0;
void dfs(int x,int p=-1)
{
    vis[x]=1;
    sz++;
    for(auto sza:ma[x])
    {
        int y=sza.second,i=sza.first;
        if(y==p or vis[y])continue;
        if(w[i]>=cw)
        {
            dfs(y,x);
        }
    }
}
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        // par[i]=i;sz[i]=1;
        ma[i].clear();
    }
    // vector<vector<ll>> edg,qry;
    for(int i=0;i<m;i++)
    {
        int x,y;
        cin>>x>>y>>w[i];
        ma[x].push_back({i,y});
        ma[y].push_back({i,x});
    }
    int q;
    cin>>q;
    for(int i=0;i<q;i++)
    {
        int t;
        cin>>t;
        ll s,wq;
        cin>>s>>wq;
        if(t==1)
        {   w[s-1]=wq;
        }
        else
        {
            for(int i=1;i<=n;i++)vis[i]=0;
            cw=wq;
            sz=0;
            dfs(s);
            cout<<sz<<endl;
        }

        // edg.push_back({w,-1,i,s});
    }
    // sort(rbegin(edg),rend(edg));
    // for(auto ty:edg)
    // {
    //     if(ty[1]==-1)
    //     {
    //         // query
    //         ans[ty[2]]=sz[get(ty[3])];
    //     }
    //     else
    //     {
    //         // edge
    //         join(ty[1],ty[2]);
    //     }
    // }
    // for(int i=0;i<q;i++)
    // {
    //     cout<<ans[i]<<' ';
    // }
    // cout<<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...