提出 #68975327
ソースコード 拡げる
#include<iostream>
using namespace std;
const int N=1e5+10;
int n,m,q,pos,ct,f[N],s[N],tu[N],tv[N],res[N];
struct ask{int x,y,z,id;}a[N],b[N];
struct nod{int l,r,ql,qr;}c[N],d[N];
int finds(int x) {return f[x]==x?x:f[x]=finds(f[x]);}
void merg(int tim)
{
int x=finds(tu[tim]),y=finds(tv[tim]);
if(x!=y)
{
if(s[x]>s[y]) swap(x,y);
s[y]+=s[x],f[x]=y;
}
}
int main()
{
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
cin>>n>>m;
for(int i=1;i<=m;i++) cin>>tu[i]>>tv[i];
cin>>q,c[ct=1]={1,m,1,q};
for(int i=1;i<=q;i++) cin>>a[i].x>>a[i].y>>a[i].z,a[i].id=i;
while(ct)
{
int tp=0,cd=0;
for(int i=1;i<=n;i++) f[i]=i,s[i]=1;
for(int i=1;i<=ct;i++)
{
int l=c[i].l,r=c[i].r,ql=c[i].ql,qr=c[i].qr;
if(l==r) {for(int j=ql;j<=qr;j++) res[a[j].id]=l; continue;}
if(ql>qr) continue;
int mid=((l+r)>>1),pl=ql,pr=qr;
while(tp<mid) merg(++tp);
for(int j=ql;j<=qr;j++)
{
int x=finds(a[j].x),y=finds(a[j].y);
if((x==y?s[x]:s[x]+s[y])>=a[j].z) b[pl++]=a[j];
else b[pr--]=a[j];
}
for(int j=ql;j<=qr;j++) a[j]=b[j];
d[++cd]={l,mid,ql,pl-1},d[++cd]={mid+1,r,pr+1,qr};
}
ct=cd;
for(int i=1;i<=ct;i++) c[i]=d[i];
}
for(int i=1;i<=q;i++) cout<<res[i]<<'\n';
return 0;
}
提出情報
| 提出日時 |
|
| 問題 |
D - Stamp Rally |
| ユーザ |
KSCD__ |
| 言語 |
C++ 20 (gcc 12.2) |
| 得点 |
1000 |
| コード長 |
1268 Byte |
| 結果 |
AC |
| 実行時間 |
83 ms |
| メモリ |
10552 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 |
3524 KiB |
| 1_00.txt |
AC |
45 ms |
10512 KiB |
| 1_01.txt |
AC |
53 ms |
10372 KiB |
| 1_02.txt |
AC |
48 ms |
10528 KiB |
| 1_03.txt |
AC |
54 ms |
10200 KiB |
| 1_04.txt |
AC |
48 ms |
10544 KiB |
| 1_05.txt |
AC |
56 ms |
10188 KiB |
| 1_06.txt |
AC |
49 ms |
10420 KiB |
| 1_07.txt |
AC |
56 ms |
10420 KiB |
| 1_08.txt |
AC |
50 ms |
10548 KiB |
| 1_09.txt |
AC |
57 ms |
10284 KiB |
| 1_10.txt |
AC |
51 ms |
10480 KiB |
| 1_11.txt |
AC |
57 ms |
10444 KiB |
| 1_12.txt |
AC |
54 ms |
10552 KiB |
| 1_13.txt |
AC |
60 ms |
10240 KiB |
| 1_14.txt |
AC |
50 ms |
9736 KiB |
| 1_15.txt |
AC |
53 ms |
9648 KiB |
| 1_16.txt |
AC |
79 ms |
8708 KiB |
| 1_17.txt |
AC |
83 ms |
9016 KiB |
| 1_18.txt |
AC |
83 ms |
8892 KiB |
| 1_19.txt |
AC |
79 ms |
8708 KiB |
| 1_20.txt |
AC |
80 ms |
8760 KiB |
| 1_21.txt |
AC |
82 ms |
8784 KiB |
| 1_22.txt |
AC |
82 ms |
8864 KiB |
| 1_23.txt |
AC |
83 ms |
8952 KiB |
| 1_24.txt |
AC |
83 ms |
9136 KiB |
| 1_25.txt |
AC |
82 ms |
9020 KiB |
| 1_26.txt |
AC |
79 ms |
8760 KiB |
| 1_27.txt |
AC |
82 ms |
9000 KiB |
| 1_28.txt |
AC |
81 ms |
8816 KiB |
| 1_29.txt |
AC |
83 ms |
9092 KiB |
| 1_30.txt |
AC |
82 ms |
8952 KiB |
| 1_31.txt |
AC |
79 ms |
8788 KiB |