选C++98编译器能AC的代码,自动识别语言居然告诉我编译错误……哪个大佬能帮看看这个编译怎么就能出错了?
#include <iostream>
using namespace std;
const int MAX = 100001;
long long abs(long long a)
{
return (a >= 0) ? a : -a;
}
int main()
{
int n, m, p1, p2, s1, s2;
long long camp[MAX][2], diff[MAX], momentum[2] = { 0 };
cin >> n;
for (int i = 1; i <= n; i++) cin >> camp[i][0];
cin >> m >> p1 >> s1 >> s2;
camp[p1][0] += s1;
for (int i = 1; i <= m; i++) {
camp[i][1] = m - i;
momentum[0] += camp[i][0] * camp[i][1];
}
for (int i = m + 1; i <= n; i++) {
camp[i][1] = i - m;
momentum[1] += camp[i][0] * camp[i][1];
}
p2 = m;
diff[m] = abs(momentum[0] - momentum[1]);
if (momentum[0] > momentum[1]) {
for (int i = m + 1; i <= n; i++) {
diff[i] = abs(momentum[0] - momentum[1] - s2 * camp[i][1]);
if (diff[i] < diff[p2]) p2 = i;
else break;
}
}
else if (momentum[0] < momentum[1]) {
for (int i = m - 1; i > 0; i--) {
diff[i] = abs(momentum[0] + s2 * camp[i][1] - momentum[1]);
if (diff[i] < diff[p2]) p2 = i;
else break;
}
}
cout << p2;
return 0;
}