建议加强数据!!这太水了吧(¬︿̫̿¬☆)
查看原帖
建议加强数据!!这太水了吧(¬︿̫̿¬☆)
290959
聊机楼主2021/1/31 14:49

连O(n^2)的玄学方法都能过,数据太水了吧。

#include<bits/stdc++.h>
using namespace std;
inline int read(){
	int k=0;bool f=1;char ch=getchar();
	while(!isdigit(ch)){if(ch=='-')f=0;ch=getchar();}
	while(isdigit(ch)){k=(k<<1)+(k<<3)+(ch^48);ch=getchar();}
	return f?k:-k;
}
void print(int x){if(x>9)print(x/10);putchar(x%10+48);}
vector<int>v;
int n,ans;
int main(){
	n=read();
	v.push_back(read());
	ans+=v[0];
	for(int i=1;i<n;i++)
	{
		int x=read(),anx=INT_MAX;
		int p=lower_bound(v.begin(),v.end(),x)-v.begin();
		if(p!=0) anx=min(anx,x-v[p-1]);
		if(p<v.size()) anx=min(anx,v[p]-x);
		v.insert(lower_bound(v.begin(),v.end(),x),x);
		ans+=anx;
	}
	print(ans);
	
	return 0;
}
2021/1/31 14:49
加载中...