Cod sursa(job #1075015)
| Utilizator | Data | 8 ianuarie 2014 13:17:19 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.59 kb |
#include<cstdio>
using namespace std;
int i,n,st,dr,x,mx,stm,s,drm;
int main()
{
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
scanf("%d",&n);
st=1;
dr=1;
mx=-20000000;
s=0;
for(i=1;i<=n;i++)
{
scanf("%d",&x);
s+=x;
if(s<=0)
{
st=i+1;
s=0;
}
if(s>mx)
{
stm=st;
drm=i;
mx=s;
}
if(s==mx&&i-st<drm-stm)
{
drm=i;
}
}
printf("%d %d %d\n",mx,stm,drm);
}
