大佬求解
查看原帖
大佬求解
1419017
z1443888087楼主2024/11/24 14:59

为什么插入inf时,样例输出为-2147483641,而插入192608170却能正常输出,代码如下

#include<iostream>
#include<set>
using namespace std;
const int inf=0x7fffffff;
set<int>s;
set<int>::iterator a,k;
int n,x,ans=0;
int main(){
	cin>>n;
	s.insert(192608170);
	s.insert(-192608170);
	for(int i=1;i<=n;i++){
		cin>>x;
		if(s.size()==2){
			ans+=x;
			s.insert(x);
		}
		else {
			k=s.lower_bound(x);
			if(*k!=x){
				a=k;
				a--;
				ans+=min(abs(*k-x),abs(*a-x));
				s.insert(x);
			}
		}
	}
	cout<<ans;
}
2024/11/24 14:59
加载中...