Cod sursa(job #1762876)
| Utilizator | Data | 24 septembrie 2016 11:01:03 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.51 kb |
#include <iostream>
#include <fstream>
#include <limits>
using namespace std;
ifstream f1("ssm.in");
ofstream f2("ssm.out");
int x[6000005],n,i,k=0,l=0,s,sol,st,dr;
void cit(){
f1>>n;
for(i=1;i<=n;i++){f1>>x[i];}
}
void rez(){
sol=numeric_limits<int>::min() ;
for(i=1;i<=n;i++){
s=max(x[i],x[i]+s);
if(s==x[i]){k=i; l=i;}
else {l++;}
if(s>sol){sol=s; dr=k; st=l;}
}
f2<<sol<<' '<<dr<<' '<<st<<'\n';
}
int main()
{
cit();
rez();
return 0;
}
