求助RE 30p
查看原帖
求助RE 30p
200116
dshzsh楼主2021/11/14 22:02
#include<bits/stdc++.h>
using namespace std;
vector<int> dl;
int js;
int main()
{
	int n;
	scanf("%d",&n);
	int ans=0;
	for(int ii=1;ii<=n;ii++)
	{
		int op,x;
		scanf("%d%d",&op,&x);
		op=(op==1)?1:-1;
		if(js==0)
		{
			dl.push_back(x);
			js=js+op;
		}
		else if((js>0&&op==1)||(js<0&&op==-1))
		{
			dl.insert(lower_bound(dl.begin(),dl.end(),x),x);
			js=js+op;
		}
		else if((js>0&&op==-1)||(js<0&&op==1))
		{
			vector<int>::iterator t=lower_bound(dl.begin(),dl.end(),x);
			if(*t==x||*t==dl.begin())
			{
				ans=ans+(*t-x);
				dl.erase(t);
			}
			else if((*t-x)>=(x-*(t-1)))
			{
				ans=ans+(x-*(t-1));
				dl.erase(t-1);
			}
			else
			{
				ans=ans+(*t-x);
				dl.erase(t);
			}
			js=js+op;
		}
		ans=ans%1000000;
	}
	printf("%d",ans);
	return 0;
}
2021/11/14 22:02
加载中...