# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
729089 | 1075508020060209tc | Bridges (APIO19_bridges) | C++14 | 3058 ms | 23832 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n;int m;int Q;
int ar[500005];int br[500005];int cr[500005];
int uf[500005];
int sz[500005];
int fin(int x){
if(uf[x]==x){return uf[x];}
uf[x]=fin(uf[x]);
return uf[x];
}
void mrg(int a,int b){
int pa=fin(a);int pb=fin(b);
if(pa==pb){return;}
uf[pa]=pb;
sz[pb]+=sz[pa];
}
vector<int>e[500005];
int qa[500005];int qw[500005];
int ans;
int vis[500005];
void dfs(int nw,int w,int id){
vis[nw]=id;
for(int i=0;i<e[nw].size();i++){
int it=e[nw][i];
int v=ar[it]^br[it]^nw;
if(vis[v]==id){continue;}
if(cr[it]<w){continue;}
dfs(v,w,id);
}
}
signed main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>ar[i]>>br[i]>>cr[i];
e[ar[i]].push_back(i);
e[br[i]].push_back(i);
}
cin>>Q;
for(int i=1;i<=Q;i++){
int typ;
cin>>typ>>qa[i]>>qw[i];
if(typ==1){
cr[qa[i]]=qw[i];
}else{
dfs(qa[i],qw[i],i);
ans=0;
for(int j=1;j<=n;j++){
if(vis[j]==i){ans++;}
}
cout<<ans<<endl;
}
}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |