Cod sursa(job #833468)
Utilizator | Alex Cociorva Al3ks1002 | Data | 12 decembrie 2012 17:02:29 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.55 kb |
#include<cstdio>
#define nmax 6000005
using namespace std;
int n,s[nmax],min,aux,a,b,i,best;
int main()
{
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++) scanf("%d",&s[i]);
for(i=1;i<=n;i++)
{
s[i]+=s[i-1];
if(s[i]-min>best)
{
best=s[i]-min;
a=aux+1;
b=i;
}
if(s[i]<min)
{
min=s[i];
aux=i;
}
}
printf("%d %d %d\n",best,a,b);
return 0;
}