Cod sursa(job #1764816)
| Utilizator | Data | 25 septembrie 2016 22:03:59 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 55 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.66 kb |
#include <iostream>
#include <cstdio>
using namespace std;
const int Max = 6000100;
int x[Max];
int main()
{ long long SMax,Sum,st,dr,poz,i,Lg,n;
freopen("ssm.in", "r", stdin);
freopen("ssm.out", "w", stdout);
cin>>n;
for(i=0;i<n;++i)
cin>>x[i];
for(SMax=Sum=x[0], st=poz=0, Lg=i=1; i<n ; ++i)
{
if(Sum<0)
{
Sum=x[i];
st=i;
}
else
{
Sum+=x[i];
if(SMax<Sum)
{
SMax=Sum;
poz=st;
Lg=i-st+1;
}
}
}
cout<<SMax<<" "<<st+1<<" "<<st+Lg;
return 0;
}
