提出 #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
結果
AC × 1
AC × 33
セット名 テストケース
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