dalao救命5555为什么这样写不对,找不出毛病来
/*
* 欢迎访问四金的世界!
* https://4jin.cc
* 学习的路上一起进步~
*
* 本题使用「前缀和」完成
*/
#include <iostream>
#include <algorithm>
using namespace std;
struct Sum {
int num;
long long int value;
bool operator<(const Sum &Compare) {
return this->value > Compare.value;
}
};
int main() {
long long int N, i, temp;
//读入数据
cin >> N;
struct Sum total[N + 1];
total[0].value = 0;
total[0].num = 0;
for (i = 1; i <= N; i++) {
cin >> temp;
total[i].value = total[i - 1].value + temp;
total[i].num = i;
}
sort(total, total + N + 1);
//处理数据
//for (i = 0; i <= N; i++) {
//cout << total[i].value <<" "<<total[i].num<< endl;
//}
long long int result = -99999;
//优化后
int loc = N;
for (i = 0; i <= N; i++) {
if (total[i].num < total[loc].num) {
loc--;
continue;
}
if (total[i].value > total[loc].value &&
(total[i].value - total[loc].value) > result) {
result = total[i].value - total[loc].value;
}
}
cout << result;
return 0;
}