Pagini recente » Cod sursa (job #1175288) | Cod sursa (job #2361057) | Cod sursa (job #262137) | Cod sursa (job #2843816) | Cod sursa (job #1183790)
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int v[6000005], n, nr;
int Begin, End, BeginEnd, EndEnd, Max;
/*
if(v[i-1] + nr < nr) - conditia 1 - de unde incepe - unde se sfarseste
else - conditia 2 - continua sirul ( ~ unde se sfarseste )
if(v[i] > max)
{
maxfinal = max;
inceputfinal = inceput;
sfarsitfinal = sfarsit;
}
*/
void citire()
{
int i;
f >> n;
f >> nr; v[0] = nr; Max = v[0];
Begin = End = BeginEnd = EndEnd = 1;
for(i = 1; i < n; i++)
{
f >> nr;
if(v[i-1] + nr < nr)
{
v[i] = nr;
Begin = i + 1;
End = i + 1;
}
else
{
v[i] = v[i-1] + nr;
End = i + 1;
}
if(v[i] > Max)
{
Max = v[i];
BeginEnd = Begin;
EndEnd = End;
}
}
}
int main()
{
citire();
g << Max << " " << BeginEnd << " " << EndEnd;
return 0;
}