Pagini recente » Cod sursa (job #1657516) | Cod sursa (job #810248) | Cod sursa (job #1638601) | Cod sursa (job #2759737) | Cod sursa (job #2909105)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <climits>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
void readData(int &N, vector<int> &numbers)
{
fin >> N;
int aux;
for(auto i = 0; i < N; i++)
{
fin >> aux;
numbers.push_back(aux);
}
}
int main()
{
int N = 0;
vector<int> numbers;
int currentIndex = 1;
readData(N, numbers);
int maxSoFar = INT_MIN;
int endMax = 0;
int start = 0, end = 0, potentialStart = 0;
for(auto number = numbers.cbegin(); number < numbers.cend(); number++)
{
endMax += *number;
if(maxSoFar < endMax)
{
maxSoFar = endMax;
start = potentialStart;
end = currentIndex;
}
if(endMax < 0)
{
endMax = 0;
potentialStart = currentIndex + 1;
}
currentIndex += 1;
}
fout << maxSoFar << ' ' << start << ' ' << end << endl;
fin.close();
fout.close();
return 0;
}