Pagini recente » Cod sursa (job #293779) | Cod sursa (job #3250239) | Cod sursa (job #908547) | Cod sursa (job #1063208) | Cod sursa (job #3216569)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int main() {
int arraySize;
fin >> arraySize;
vector<long> arr;
for (int i = 0; i < arraySize; ++i) {
long element;
fin >> element;
arr.push_back(element);
}
long maxSum = LONG_MIN, firstIndex = 0, secondIndex = 0;
long partialMaxSum = LONG_MIN;
int partialFirstIndex = 0, partialSecondIndex = 0;
for (int i = 0; i < arraySize; ++i) {
if (arr[i] > partialMaxSum + arr[i]) {
partialMaxSum = arr[i];
partialFirstIndex = i;
partialSecondIndex = i;
} else {
partialMaxSum += arr[i];
++partialSecondIndex;
}
if (maxSum < partialMaxSum
|| (maxSum == partialMaxSum && partialFirstIndex + 1 < firstIndex)
|| (maxSum == partialMaxSum && partialFirstIndex + 1 == firstIndex && partialSecondIndex < secondIndex)) {
maxSum = partialMaxSum;
firstIndex = partialFirstIndex + 1;
secondIndex = partialSecondIndex + 1;
}
}
fout << maxSum << " " << firstIndex << " " << secondIndex;
return 0;
}