Pagini recente » Cod sursa (job #2155079) | Cod sursa (job #1197225) | Cod sursa (job #593976) | Cod sursa (job #2851390) | Cod sursa (job #3139344)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
const int MAX_LENGTH = 6000000;
const int MAX_VALUE = 2000000;
int main() {
/* int numLen;
cin >> numLen;
int num[MAX_LENGTH + 1];
for (int i = 1; i <= numLen; ++i) {
cin >> num[i];
}
int maxSum = -MAX_VALUE - 1, start = 0, end = 0;
for (int i = 1; i <= numLen; ++i) {
int sum = 0;
for (int j = i; j <= numLen; ++j) {
sum += num[j];
if (sum > maxSum) {
maxSum = sum;
start = i;
end = j;
}
}
}
cout << maxSum << ' ' << start << ' ' << end;*/
int numLen;
fin >> numLen;
int sum[MAX_LENGTH + 1] = {0};
for (int i = 1; i <= numLen; ++i) {
int number;
fin >> number;
sum[i] = sum[i - 1] + number;
}
int maxSum = -MAX_VALUE - 1, start = 0, end = 0;
for (int i = 1; i <= numLen; ++i) {
for (int j = i; j <= numLen; ++j) {
if (sum[j] - sum[i - 1] > maxSum) {
maxSum = sum[j] - sum[i - 1];
start = i;
end = j;
}
}
}
fout << maxSum << ' ' << start << ' ' << end;
return 0;
}
/*
7
5 -6 3 4 -2 3 -3
=>
8 3 6
2
3 1
=>
4 1 2
5
3 1 -3 -1 4
=>
4 1 2
1
3
=>
3 1 1
3
-2 -1 -3
=>
-1 2 2
3
-1 -1 -1
=>
-1 1 1
*/