Submission #974700

#TimeUsernameProblemLanguageResultExecution timeMemory
974700AbitoBridges (APIO19_bridges)C++17
0 / 100
72 ms6344 KiB
#include <bits/stdc++.h> #define F first #define S second #define pb push_back #define ppb pop_back #define ep insert #define endl '\n' #define elif else if #define pow pwr #define sqrt sqrtt //#define int long long #define ll long long typedef unsigned long long ull; using namespace std; struct query{ int x,w,i; }; struct edge{ int x,y,w; }; const int N=1e5+5; int n,m,q,ans[N],sz[N],par[N]; query b[N]; bool cmp1(edge x,edge y){ return x.w<y.w; } bool cmp2(query x,query y){ return x.w>y.w; } int getpar(int x){ if (x==par[x]) return x; return par[x]=getpar(par[x]); } void link(int x,int y){ x=getpar(x); y=getpar(y); if (x==y) return; if (sz[x]>sz[y]) swap(x,y); sz[y]+=sz[x]; par[x]=y; return; } int32_t main(){ ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); cin>>n>>m; vector<edge> v(m); for (int i=0;i<m;i++) cin>>v[i].x>>v[i].y>>v[i].w; for (int i=1;i<=n;i++) sz[i]=1,par[i]=i; sort(v.begin(),v.end(),cmp1); cin>>q; for (int i=1;i<=q;i++){ cin>>b[i].x>>b[i].x>>b[i].w; b[i].i=i; } sort(b+1,b+1+q,cmp2); for (int i=1;i<=q;i++){ while (!v.empty() && v.back().w>=b[i].w){ link(v[i].x,v[i].y); v.ppb(); }ans[b[i].i]=sz[getpar(b[i].x)]; } for (int i=1;i<=q;i++) cout<<ans[i]<<endl; return 0; }
#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...