Submission #7909452
Source Code Expand
#include<bits/stdc++.h> typedef long long ll; ll gi(){ ll x=0,f=1; char ch=getchar(); while(!isdigit(ch))f^=ch=='-',ch=getchar(); while(isdigit(ch))x=x*10+ch-'0',ch=getchar(); return f?x:-x; } int fa[200010]; int hd(int x){return fa[x]==x?x:fa[x]=hd(fa[x]);} int W[200010],siz[200010],FA[200010],cnt; int st[18][200010]; int Calc(int a,int b,int w){ for(int i=17;~i;--i)if(st[i][a]&&W[st[i][a]]<=w)a=st[i][a]; for(int i=17;~i;--i)if(st[i][b]&&W[st[i][b]]<=w)b=st[i][b]; return a==b?siz[a]:siz[a]+siz[b]; } int main(){ #ifdef XZZSB freopen("in.in","r",stdin); freopen("out.out","w",stdout); #endif int n=gi(),a,b,m=gi(); for(int i=1;i<=n*2;++i)fa[i]=i; for(int i=1;i<=n;++i)siz[i]=1; cnt=n; for(int i=1;i<=m;++i){ a=hd(gi()),b=hd(gi()); if(a==b)continue; fa[a]=fa[b]=FA[a]=FA[b]=++cnt; siz[cnt]=siz[a]+siz[b]; W[cnt]=i; } for(int i=1;i<=n*2;++i)st[0][i]=FA[i]; for(int i=1;i<18;++i) for(int j=1;j<=cnt;++j) st[i][j]=st[i-1][st[i-1][j]]; int Q=gi(),z; while(Q--){ a=gi(),b=gi();z=gi(); int l=1,r=m,mid; while(l<r){ mid=(l+r)>>1; if(Calc(a,b,mid)>=z)r=mid; else l=mid+1; } printf("%d\n",l); } return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - Stamp Rally |
User | test12345 |
Language | C++14 (GCC 5.4.1) |
Score | 1000 |
Code Size | 1158 Byte |
Status | AC |
Exec Time | 484 ms |
Memory | 18816 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 1000 / 1000 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 0_00.txt |
All | 0_00.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt, 1_16.txt, 1_17.txt, 1_18.txt, 1_19.txt, 1_20.txt, 1_21.txt, 1_22.txt, 1_23.txt, 1_24.txt, 1_25.txt, 1_26.txt, 1_27.txt, 1_28.txt, 1_29.txt, 1_30.txt, 1_31.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
0_00.txt | AC | 4 ms | 14592 KB |
1_00.txt | AC | 370 ms | 18048 KB |
1_01.txt | AC | 484 ms | 18048 KB |
1_02.txt | AC | 410 ms | 18816 KB |
1_03.txt | AC | 461 ms | 18816 KB |
1_04.txt | AC | 426 ms | 18560 KB |
1_05.txt | AC | 459 ms | 18560 KB |
1_06.txt | AC | 423 ms | 18304 KB |
1_07.txt | AC | 452 ms | 18304 KB |
1_08.txt | AC | 406 ms | 18048 KB |
1_09.txt | AC | 399 ms | 18048 KB |
1_10.txt | AC | 331 ms | 18048 KB |
1_11.txt | AC | 295 ms | 18048 KB |
1_12.txt | AC | 336 ms | 18048 KB |
1_13.txt | AC | 294 ms | 18048 KB |
1_14.txt | AC | 335 ms | 18048 KB |
1_15.txt | AC | 334 ms | 18048 KB |
1_16.txt | AC | 325 ms | 17920 KB |
1_17.txt | AC | 394 ms | 17920 KB |
1_18.txt | AC | 403 ms | 17920 KB |
1_19.txt | AC | 319 ms | 18048 KB |
1_20.txt | AC | 380 ms | 17792 KB |
1_21.txt | AC | 354 ms | 18048 KB |
1_22.txt | AC | 387 ms | 17920 KB |
1_23.txt | AC | 394 ms | 17920 KB |
1_24.txt | AC | 408 ms | 17792 KB |
1_25.txt | AC | 382 ms | 17920 KB |
1_26.txt | AC | 359 ms | 17792 KB |
1_27.txt | AC | 388 ms | 17920 KB |
1_28.txt | AC | 360 ms | 17920 KB |
1_29.txt | AC | 405 ms | 17792 KB |
1_30.txt | AC | 389 ms | 17920 KB |
1_31.txt | AC | 377 ms | 17792 KB |