❤ • 17天前
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
int main() {
int n;
cin >> n;
vector<long long> c(n);
for (int i = 0; i < n; i++) {
cin >> c[i];
}
int m, p1;
long long s1, s2;
cin >> m >> p1 >> s1 >> s2;
long long L = 0, T = 0;
for (int i = 1; i <= n; i++) {
if (i < m) {
L += c[i - 1] * (m - i);
} else if (i > m) {
T += c[i - 1] * (i - m);
}
}
if (p1 < m) {
L += s1 * (m - p1);
} else if (p1 > m) {
T += s1 * (p1 - m);
}
long long best_diff = abs(L - T);
int best_p2 = m;
for (int p2 = 1; p2 <= n; p2++) {
long long L_new = L;
long long T_new = T;
if (p2 < m) {
L_new += s2 * (m - p2);
} else if (p2 > m) {
T_new += s2 * (p2 - m);
}
long long diff = abs(L_new - T_new);
if (diff < best_diff) {
best_diff = diff;
best_p2 = p2;
} else if (diff == best_diff && p2 < best_p2) {
best_p2 = p2;
}
}
cout << best_p2 << endl;
return 0;
}
评论:
请先登录,才能进行评论