Cod sursa(job #1765328)
| Utilizator | Data | 26 septembrie 2016 17:22:16 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 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++){
if(x[i] > s + x[i])
{s = x[i]; k=i; l=i;}
else
{s= s + x[i]; l++;}
if(s>sol)
{sol=s; dr=k; st=l;}
}
f2<<sol<<' '<<dr<<' '<<st<<'\n';
}
int main()
{
cit();
rez();
return 0;
}
