只有10分 and 2 hacks?
查看原帖
只有10分 and 2 hacks?
1593088
Fuhanchen楼主2025/6/27 22:30
#include<bits/stdc++.h>
using namespace std;
long long* ptr;
int main()
{
	long long n,x;
	static long long total;
	scanf("%lld%lld",&n,&x);
	ptr=new long long[n+1];
	for(long long i=0;i<n;i++) scanf("%lld",&ptr[i]);
	for(long long i=0;i<n;i++)
	{
		if(ptr[i]>x) total+=(ptr[i]-x),ptr[i]=x;
	}
	for(long long i=1;i<(n-1);++i)
	{
		long long tmp=min(abs(ptr[i]+ptr[i+1]),abs(ptr[i]+ptr[i-1]));
		if(tmp>x)
		{
			if(ptr[i]-(tmp-x)>=0) ptr[i]-=(tmp-x);
			else if(ptr[i+1]-(tmp-x)>=0) ptr[i+1]-=(tmp-x);
			else if(ptr[i-1]-(tmp-x)>=0) ptr[i-1]-=(tmp-x);
			total+=(tmp-x);
		}
	}
	printf("%lld\n",total);
	delete[] ptr;
	return 0;
}

long long 早已开

2025/6/27 22:30
加载中...