社区讨论

求助RE 30p

P2286[HNOI2004] 宠物收养场参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lobck4nt
此快照首次捕获于
2023/10/29 18:47
2 年前
此快照最后确认于
2023/11/04 00:31
2 年前
查看原帖
CPP
#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;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...