Cod sursa(job #1590528)
| Utilizator | Data | 5 februarie 2016 11:37:41 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.63 kb |
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
int S,Smax,x,i, n,p, start,sfarsit ;
ifstream fin ("ssm.in");
ofstream fout("ssm.out");
fin >> n;
fin >> x;
S = Smax = x;
start = 1;sfarsit = 1;
p = 1;
if(S<0) {S=0;p=2;}
for(i = 2; i<=n;i++)
{
fin >> x;
S = S+x;
if(Smax<S)
{
Smax=S;
sfarsit = i;
start = p;
}
if(S<0)
{
S=0;
p = i + 1;
}
}
fout << Smax << " "<< start << " "<< sfarsit << "\n";
return 0;
}
