Cod sursa(job #1596798)
Utilizator | Data | 11 februarie 2016 13:44:33 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.59 kb |
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int n,a,mx=0,lt,rt,s1=0;
ifstream f("ssm.in");
ofstream g("ssm.out");
f>>n;
int s=0;
for(int i=1; i<=n; ++i)
{
f>>a;
s+=a;
s1+=a;
if(s>mx)
{
mx=s;
s1=0;
if(rt+1!=i) lt=i;
rt=i;
}
else if(s1>0)
{
mx+=s1;
lt=rt-1;
rt=i;
}
else if(a<0)
{
s=0;
}
}
g<<mx<<" "<<lt<<" "<<rt;
}