Pagini recente » Cod sursa (job #993977) | Cod sursa (job #134083) | Cod sursa (job #2929947) | Cod sursa (job #1602280) | Cod sursa (job #1883555)
#include <iostream>
#include <fstream>
#include<climits>
using namespace std;
int main()
{
int i,s,a,smax,n,ist,isf,istmax,isfmax;
ifstream f("ssm.in");ofstream g("ssm.out");
f>>n;
smax=INT_MIN; s=0;istmax=0;isfmax=0;
for (i=1;i<=n;i++)
{
f>>a;
s=s+a;
if(s<0) //suntem la inceput de secventa in dreptul unui numar negativ
{ist=i;isf=i;}
else isf=i; //secventa creste c
if(s>smax) //am gasit o secventa de suma maxima
{smax=s; istmax=ist; isfmax=isf;}
if (s<0) {s=0;ist=i+1;} // la pasul urmator incepem o secventa noua
}
g<<smax<<" "<<istmax<<" "<<isfmax;
f.close();g.close();
return 0;
}