挂hack求助
查看原帖
挂hack求助
1243618
Jokersheng楼主2025/8/30 22:24
#include <bits/stdc++.h>
using namespace std;

const int N=1e4+5,M=1e6+5;

int n,f[N],l,r,res;

bool vis[N];

int find(int x){
	return f[x]==x?f[x]:f[x]=find(f[x]);
}

void update(int x,int y){
	x=find(x),y=find(y);
	if(x==y)return;
	if(x<y)f[y]=x;
	else f[x]=y;
}

int main(){
	//freopen(".in","r",stdin);
	//freopen(".out","w",stdout);
	cin>>n;
	for(int i=1;i<N;i++){
		f[i]=i;
	}
	for(int i=1;i<=n;i++){
		cin>>l>>r;
		if(vis[l]&&vis[r]){
			continue;
		}else if(!vis[l]&&vis[r]){
			vis[l]=1;
			update(l,r);
		}else if(!vis[r]&&vis[l]){
			vis[r]=1;
			update(l,r);
		}else{
			if(l<r)vis[l]=1;
			else vis[r]=1;
			update(l,r);
		}
	}
	for(int i=1;i<=M;i++){
		if(vis[i]){
			res++;
		}else{
			break;
		}
	}
	cout<<res;


	return 0;
}

2025/8/30 22:24
加载中...