Pagini recente » Cod sursa (job #1959483) | Cod sursa (job #2748889) | Cod sursa (job #345889) | Cod sursa (job #2962234) | Cod sursa (job #2909351)
#include <fstream>
#include <iostream>
#include <climits>
#include <algorithm>
#define NR_OF_ELEMENTS 6000005
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
void Read(int &n, int a[])
{
int i;
fin >> n;
for(i = 0; i < n; ++ i)
fin >> a[i];
}
void Solve(int n, int a[])
{
int sum, imax, jmax, smax = INT_MIN, y = 0, i;
sum = a[0];
for(i = 1; i < n; ++ i)
{
if(a[i] > sum + a[i])
{
sum = a[i]; //incepe o noua suma
y = i;
}
else
sum += a[i]; //se adauga in suma curenta
if(sum > smax) //verificare suma mai mare
{
smax = sum;
imax = y;
jmax = i;
}
}
fout << smax << ' ' << imax + 1 << ' ' << jmax + 1 << '\n';
}
int main()
{
int n, a[NR_OF_ELEMENTS];
Read(n, a);
Solve(n, a);
return 0;
}