Cod sursa(job #1958272)
Utilizator | Data | 8 aprilie 2017 11:07:42 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;
int a[6000010];
int main()
{
int n,i,s=-1,l=0,smax=INT_MIN,imax,lmax;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
fin>>n;
for(i=1; i<=n; i++)
fin>>a[i];
for(i=1;i<=n;i++)
{
if(s<0||s+a[i]<0){s=a[i];l=1;}
else {s+=a[i];l++;}
if(s>smax){smax=s;imax=i;lmax=l;}
}
fout<<smax<<" "<<imax-lmax+1<<" "<<imax;
return 0;
}