第一个回答的给一个关注!
查看原帖
第一个回答的给一个关注!
1370100
lei_dian_ying楼主2025/7/26 11:37

为什么我的二分WA了呢?

#include<bits/stdc++.h>
using namespace std;
int n;
int a[5005];
int l,r;
bool ch(int x){
	map<int,int> mp;
	for(int i=1;i<=n;i++){
		if(mp[a[i]%x]!=0){
			return 0;
		}
		else{
			mp[a[i]%x]=1;
		}
	}
	return 1;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	l=n,r=5005;
	while(l<=r){
		int mid=(l+r)/2;
		if(ch(mid)){
			r=mid-1;
		}
		else{
			l=mid+1;
		}
	}
	cout<<l;
}
2025/7/26 11:37
加载中...