wa求助
查看原帖
wa求助
363648
qiyi0918楼主2022/10/3 15:25
#include<bits/stdc++.h>
using namespace std;
int l,r;
int n,s,x[100001];
int p[100001];
long long t[100001];
void work(int l,int r)
{
	if(s>x[l]&&s<x[r])
	{
		if(p[l]>=p[r])
		{
			p[l]+=p[r];
			work(l,r-1);
			t[r]=t[l]+x[r]-x[l];
		}
		else
		{
			p[r]+=p[l];
			work(l+1,r);
			t[l]=t[r]+x[r]-x[l];
		}
	}
	if(s<=x[l])
	{
		for(int i=l;i<=r;i++)
		{
			t[i]=x[i]-s;
		}
	}
	if(s>=x[r])
	{
		for(int i=r;i>=l;i--)
		{
			t[i]=s-x[i];
		}
	}
}
int main()
{
	scanf("%d%d",&n,&s);
	for(int i=1;i<=n;i++)
	{
		scanf("%d%d",&x[i],&p[i]);
	}
	work(1,n);
	long long ans=0;
	for(int i=1;i<=n;i++)
		ans=max(ans,t[i]);
	printf("%lld",ans);
	return 0;
}
2022/10/3 15:25
加载中...