Pagini recente » Cod sursa (job #1612814) | Cod sursa (job #374799) | Cod sursa (job #1009617) | Cod sursa (job #3123650) | Cod sursa (job #3204941)
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n;
fin >> n;
int arr[n + 1];
for (int i = 1; i <= n; i++) {
fin >> arr[i];
}
int start = 1, end = 1;
int currentStart = 1;
int maxSum = arr[1];
int currentSum = arr[1];
for (int i = 2; i <= n; i++) {
if (currentSum < 0) {
currentSum = arr[i];
currentStart = i;
} else {
currentSum += arr[i];
}
if (currentSum > maxSum) {
maxSum = currentSum;
start = currentStart;
end = i;
} else if (currentSum == maxSum) {
if ((i - currentStart + 1 < end - start + 1) || (currentStart < start)) {
start = currentStart;
end = i;
}
}
}
fout << maxSum << " " << start << " " << end;
fin.close();
fout.close();
return 0;
}