求助!只有10分!!!!!
查看原帖
求助!只有10分!!!!!
373296
wxyz0楼主2021/8/26 17:06

求助!!奆佬们,

只有10分,1个点AC,其他全RE

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,q,s,t,a[200010],b[200010],ans;
ll calc(ll x,ll B) {
	for(int i=1;i<=x;i++){
		if(a[i]<a[i-1])B+=t*abs(a[i-1]-a[i]);
		if(a[i]>a[i-1])B-=s*abs(a[i-1]-a[i]);
	}
}
int main() {
	scanf("%lld%lld%lld%lld",&n,&q,&s,&t);
	for(ll i=0; i<=n; i++) {
		scanf("%lld",&a[i]);
		b[i]=a[i]-a[i-1];
		calc(b[i],ans);
	}
	for(ll i=1; i<=q; i++) {
		ll x,y,z;
		scanf("%lld%lld%lld",&x,&y,&z);
		ans-=calc(b[x],ans);
		b[x]+=z;
		ans+=calc(b[x],ans);
		if(y!=n) {
			ans-=calc(b[y+1],ans);
			b[y+1]-=z;
			ans+=calc(b[y+1],ans);
		}
		printf("%lld\n",ans);
	}
	return 0;
}
2021/8/26 17:06
加载中...