各位大佬,有大佬说开long long可以卡过去,问题是我这没过,还是五个点WA,各位大佬看看是啥子问题。代码如下。
#include<bits/stdc++.h>
using namespace std;
unsigned long long n, m, c[100005], p1, p2, s1, s2;
unsigned long long a[100005], b[100005], sum1 = 0, sum2 = 0;
unsigned long long mn = 0x3f3f3f3f, ans = 0;
int main() {
cin >> n;
for (int i = 1; i <= n; i++)
cin >> c[i];
cin >> m >> p1 >> s1 >> s2;
for (int i = 1; i < m; i++)
a[i] = (m - i) * c[i], sum1 += a[i];
for (int i = m + 1; i <= n; i++)
b[i] = (i - m) * c[i], sum2 += b[i];
if (p1 < m)
sum1 += (m - p1) * s1;
if (p1 > m)
sum2 += (p1 - m) * s1;
for (int i = 1; i <= n; i++) {
int t1 = sum1, t2 = sum2;
if (i < m)
t1 += (m - i) * s2;
if (i > m)
t2 += (i - m) * s2;
if(mn > abs(t1 - t2))
mn = abs(t1 - t2), ans = i;
}
cout << ans << endl;
return 0;
}