提出 #68974938
ソースコード 拡げる
#include<iostream>
#include<algorithm>
#include<vector>
#define ub upper_bound
#define pb push_back
#define pii pair<int,int>
#define fi first
#define se second
using namespace std;
const int N=1e5+10;
int n,m,q,f[N],s[N],tim[N];
vector <pii> sp[N];
int finds(int x,int lim) {return tim[x]<=lim?finds(f[x],lim):x;}
int chk(int x,int lim)
{
int tp=ub(sp[x].begin(),sp[x].end(),(pii){lim,m})-sp[x].begin()-1;
return sp[x][tp].se;
}
int check(int x,int y,int lim)
{
int fx=finds(x,lim),fy=finds(y,lim);
return fx==fy?chk(fx,lim):chk(fx,lim)+chk(fy,lim);
}
int main()
{
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++) f[i]=i,s[i]=1,tim[i]=m+1,sp[i].pb({0,1});
for(int i=1;i<=m;i++)
{
int u,v,x,y; cin>>u>>v,x=finds(u,m),y=finds(v,m);
if(x!=y)
{
if(s[x]>s[y]) swap(x,y);
tim[x]=i,s[y]+=s[x],f[x]=y,sp[y].pb({i,s[y]});
}
}
cin>>q;
while(q--)
{
int x,y,z,l=1,r=m,res=m; cin>>x>>y>>z;
while(l<=r)
{
int mid=((l+r)>>1);
if(check(x,y,mid)>=z) res=mid,r=mid-1;
else l=mid+1;
}
cout<<res<<'\n';
}
return 0;
}
提出情報
| 提出日時 |
|
| 問題 |
D - Stamp Rally |
| ユーザ |
KSCD__ |
| 言語 |
C++ 20 (gcc 12.2) |
| 得点 |
1000 |
| コード長 |
1132 Byte |
| 結果 |
AC |
| 実行時間 |
243 ms |
| メモリ |
11844 KiB |
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
1000 / 1000 |
| 結果 |
|
|
| セット名 |
テストケース |
| 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 |
| ケース名 |
結果 |
実行時間 |
メモリ |
| 0_00.txt |
AC |
1 ms |
3468 KiB |
| 1_00.txt |
AC |
126 ms |
10800 KiB |
| 1_01.txt |
AC |
139 ms |
10796 KiB |
| 1_02.txt |
AC |
232 ms |
10812 KiB |
| 1_03.txt |
AC |
166 ms |
10844 KiB |
| 1_04.txt |
AC |
239 ms |
10848 KiB |
| 1_05.txt |
AC |
181 ms |
11220 KiB |
| 1_06.txt |
AC |
243 ms |
10864 KiB |
| 1_07.txt |
AC |
191 ms |
10860 KiB |
| 1_08.txt |
AC |
202 ms |
10820 KiB |
| 1_09.txt |
AC |
174 ms |
11004 KiB |
| 1_10.txt |
AC |
146 ms |
10744 KiB |
| 1_11.txt |
AC |
132 ms |
11064 KiB |
| 1_12.txt |
AC |
106 ms |
11844 KiB |
| 1_13.txt |
AC |
103 ms |
11688 KiB |
| 1_14.txt |
AC |
68 ms |
10552 KiB |
| 1_15.txt |
AC |
73 ms |
10444 KiB |
| 1_16.txt |
AC |
196 ms |
11184 KiB |
| 1_17.txt |
AC |
186 ms |
11140 KiB |
| 1_18.txt |
AC |
184 ms |
10996 KiB |
| 1_19.txt |
AC |
197 ms |
11336 KiB |
| 1_20.txt |
AC |
184 ms |
10804 KiB |
| 1_21.txt |
AC |
189 ms |
11272 KiB |
| 1_22.txt |
AC |
188 ms |
10968 KiB |
| 1_23.txt |
AC |
188 ms |
11028 KiB |
| 1_24.txt |
AC |
181 ms |
10484 KiB |
| 1_25.txt |
AC |
185 ms |
11188 KiB |
| 1_26.txt |
AC |
185 ms |
10976 KiB |
| 1_27.txt |
AC |
186 ms |
11148 KiB |
| 1_28.txt |
AC |
186 ms |
11184 KiB |
| 1_29.txt |
AC |
180 ms |
10456 KiB |
| 1_30.txt |
AC |
185 ms |
11056 KiB |
| 1_31.txt |
AC |
183 ms |
10648 KiB |