过不了样例+RE求助
查看原帖
过不了样例+RE求助
767561
Ascnbeta楼主2024/6/30 17:22

使用的是差分,但不知道为什么样例都过不了。

如果提交会RE

代码如下:

#include <bits/stdc++.h>
using namespace std;
long long n,q,s,t,a[200005],b,f[200005];
long long f1(int p) {
	if (f[p] > 0) {
		return -s * f[p];
	}else if (f[p] < 0){
		return -t * f[p];
	}
}
int main () {
	scanf("%lld %lld %lld %lld",&n,&q,&s,&t);
	for (int i = 1; i <= n; i++) {
		scanf("%lld",&a[i]);
		f[i] = a[i] - a[i-1];
		b += f1(i);
	}
	while (q--) {
		long long x,y,z;
		scanf("%lld %lld %lld",&x,&y,&z);
		b -= f1(x);
		f[x] += z;
		b += f1(x);
		if (y != n) {
			b -= f1(y + 1);
			f[y+1] -= z;
			b += f1(y + 1);
		}
		printf("%lld\n",b);
	}
	return 0;
}
2024/6/30 17:22
加载中...