求助DL帮忙!!80分WA
查看原帖
求助DL帮忙!!80分WA
727192
Liuyilin1楼主2022/10/16 14:06

求大佬帮忙看看那错了!!!

#include <bits/stdc++.h>
using namespace std;
int n, m, p1, s1, s2;
int a[100001];

int main() {
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
	}
	cin >> m >> p1 >> s1 >> s2;
	long long sum1 = 0, sum2 = 0;
	int ans = 0, z = INT_MAX;
	a[p1] += s1;
	for (int i = 1; i < m; i++) {
		sum1 += a[i] * (m - i);
	}
	for (int i = m + 1; i <= n; i++) {
		sum2 += a[i] * (i - m);
	}
	for (int i = 1; i <= n; i++) {
		int sum11 = sum1, sum22 = sum2;
		if (i != m) {
			if (i > m) {
				sum2 -= a[i] * (i - m);
				sum2 += (a[i] + s2) * (i - m);
			} else {
				sum1 -= a[i] * (m - i);
				sum1 += (a[i] + s2) * abs(i - m);
			}
		}
		if (sum1 == sum2) {
			ans = i;
			break;
		}
		if (abs(sum1 - sum2) < z) {
			z = abs(sum1 - sum2);
			ans = i;
		}
//		cout << sum1 << " " << sum2 << " " << z << endl;
		sum1 = sum11;
		sum2 = sum22;
	}
	cout << ans;
}

为什么从21个点后都WA了呢

悬赏1个关注!!!

2022/10/16 14:06
加载中...