Cod sursa(job #1596790)
Utilizator | Data | 11 februarie 2016 13:38:05 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 5 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.44 kb |
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int n,a,mx=0,lt=1,rt,s1=0,bestlt;
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) {bestlt=lt; mx=s; s1=0;rt=i;}
else if(s1>0) {mx+=s1; rt=i;}
else if(a<0) {lt=i+1; s=0;}
}
g<<mx<<" "<<bestlt<<" "<<rt;
}