Cod sursa(job #1518832)
| Utilizator | Data | 6 noiembrie 2015 15:05:43 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 85 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.8 kb |
#include<iostream>
#include<fstream>
using namespace std;
long long int a[6000000];
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int main ()
{
int s,smax,i,n,st,dr,stfin,drfin;
fin>>n;
for (i=1;i<=n;i++)
{
fin>>a[i];
}
st=dr=stfin=drfin=1;
s = smax = a[1];
if (s<0)
s=0;
for (i=2;i<=n;i++)
{
s=s+a[i];
if (s>smax)
{
smax=s;
drfin=dr;
stfin=st;
}
if (s<0)
{
s=0;
st=i+1;
dr=i+1;
}
else
{
dr++;
}
}
fout<<smax<<" "<<stfin<<" "<<drfin<<"\n";
fin.close();
fout.close();
return 0;
}
