TLE第十个点(关注第1个人)
查看原帖
TLE第十个点(关注第1个人)
806720
sea_water楼主2024/1/24 13:02
#include<bits/stdc++.h>
using namespace std;
multiset<int> q;
int n,ans;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		int x;
		cin>>x;
		q.insert(x);
		if(i==1){
			ans+=x;
		}
		else{
			if(x==*(--q.end())){
				if(q.count(x)>=2){
					ans+=0;
				}
				else ans+=abs(*(--q.lower_bound(x))-x);
			}
			else if(x==*(q.begin())){
				if(q.count(x)>=2){
					ans+=0;
				}
				else ans+=abs(*(++q.lower_bound(x))-x);
			}
			else{
				int l=*(--q.lower_bound(x));
				int r=*(++q.lower_bound(x));
				ans+=min(abs(x-l),abs(x-r));
			}
		}
	}
	cout<<ans;
	return 0;
}
2024/1/24 13:02
加载中...