Cod sursa(job #353344)
Utilizator | A Cosmina - vechi miculprogramator | Data | 4 octombrie 2009 19:59:43 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 75 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.48 kb |
#include <iostream>
#include <fstream>
using namespace std;
int N,s[6000000],i,j,st,poz,Sum,SMax,Lg;
int main()
{
ifstream f("ssm.in");
ofstream g("ssm.out");
f>>N;
for (i=1;i<=N;++i)
f>>s[i];
f.close();
for (SMax=Sum=0, st=poz=0, Lg=i=1;i<N;++i)
if (Sum<0)
{
Sum=s[i];
st=i;
}
else
{
Sum+=s[i];
if (SMax<Sum)
{
SMax=Sum;
poz=st;
Lg=i-st+1;
}
}
g<<SMax<<" "<<st<<" "<<Lg+st-1<<"\n";
g.close();
return 0;
}