Cod sursa(job #373633)
Utilizator | Popescu Mihai RegeleUmbrelor | Data | 14 decembrie 2009 16:27:35 |
---|---|---|---|
Problema | Secventa 2 | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.57 kb |
#include<stdio.h>
int sp[50001], sc=0, smax, v[50001],n,k, pi,pf;
void calcul()
{
int poz=1;
freopen("secv2.in", "r", stdin);
freopen("secv2.out", "w", stdout);
scanf("%d%d", &n, &k);
pi=1;pf=k;
for(int i=1;i<=n;++i)
{
scanf("%d", &v[i]);sp[i]=sp[i-1]+v[i];
if(i>=k)
{
if(i==k)
smax=sp[k];
if(sc+v[i]>sp[i]-sp[i-k])
sc+=v[i];
else
{
sc=sp[i]-sp[i-k];
poz=i-k+1;
}
if(sc>smax)
{
sc=smax;
pi=poz;pf=i;
}
}
}
}
int main()
{
calcul();
printf("%d %d %d", pi,pf,smax);
return 0;
}