Cod sursa(job #281298)
Utilizator | Nanuti Diana-Maria dya_ndm | Data | 14 martie 2009 09:46:01 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.73 kb |
#include<stdio.h>
int a[50001];
long n,k,num,is,im,sfm,i;
long long s,smax;
int main()
{
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
scanf("%ld %ld",&n,&k);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
s=smax=a[1];
is=im=sfm=1;
while(num<=k)
{
for(i=2;i<=n;i++)
{
if((s+a[i])>a[i])
{
s+=a[i];
num++;
}
else
{
num=0;
s=a[i];
is=i;
}
if(s>smax)
{
smax=s;
im=is;
sfm=i;
}
}
}
printf("%ld %ld %lld\n",is,sfm,smax);
fcloseall();
return 0;
}