59分求助!
查看原帖
59分求助!
778834
InnitTimmer楼主2022/10/5 20:56
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
const int N=50500;
struct node{
	int sum,id;
}a[N];
int n,m,sum=0,minn=1e9;
bool vis[N];
bool cmp1(node a,node b){
	return a.sum<b.sum;
}
bool check(int l,int r){
	bool dis[N]={0};
	int cnt=0;
	for(int i=l;i<=r;i++){
		if(dis[a[i].id]==0){
			cnt++;
			dis[a[i].id]=1;
		}
	}
	if(cnt==sum) return 1;
	else return 0;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i].sum>>a[i].id;
		if(vis[a[i].id]==0){
			vis[a[i].id]=1;
			sum++;
		}
	}
	sort(a+1,a+n+1,cmp1);
	int l=1,r=1;
	while(r<=n){
		r++;
		while(l<=n){
			if(check(l,r)||check(r,l))minn=min(minn,abs(a[r].sum-a[l].sum));
			l++;
		}
	}
	
	cout<<minn;
    return 0;
}
2022/10/5 20:56
加载中...