Cod sursa(job #659972)
| Utilizator | Data | 11 ianuarie 2012 13:45:32 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.76 kb |
#include <cstdio>
using namespace std;
int i,s[7000005],l,r,im,n,x,max=-int(2e9),min=0;
int main()
{
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
scanf("%d",&n);
s[0]=0;
for (i=1;i<=n;i++)
{
scanf("%d",&x);
s[i]=s[i-1]+x;
}
for (i=1;i<=n;i++)
{
if (max<s[i]-min)
{
max=s[i]-min;
l=im+1;
r=i;
}
if (min>s[i])
{
min=s[i];
im=i;
}
}
printf("%d %d %d\n",max,l,r);
}
