Cod sursa(job #263944)
Utilizator | Data | 20 februarie 2009 23:05:38 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 85 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.6 kb |
#include <stdio.h>
long int v[6000000];
int n;
void citire()
{
freopen("ssm.in","r",stdin);
scanf("%ld",&n);
for (int i=1;i<=n;i++)
scanf("%d",&v[i]);
}
void subsir()
{
freopen("ssm.out","w",stdout);
long int summax=0,s=0,i,start,inc,sfr;
for (i=1;i<=n;i++)
{
if (v[i]>v[i]+s)
{
start=i;
s=v[i];
}
else
s+=v[i];
if (summax<s)
{
inc=start;
sfr=i;
summax=s;
}
}
printf("%ld %ld %ld",summax,inc,sfr);
}
int main()
{
citire();
subsir();
}