Cod sursa(job #11144)
| Utilizator | Data | 30 ianuarie 2007 18:13:27 | |
|---|---|---|---|
| Problema | Secventa 2 | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.47 kb |
#include <stdio.h>
long s[50001];
int a[50001];
long i,k,n,p=0,max=0,pr,ul,t=1;
int main()
{
FILE *f=fopen("secv2.in","r"), *g=fopen("secv2.out","w");
fscanf(f,"%ld %ld",&n,&k);
for (i=1;i<=n;i++)
{
fscanf(f,"%d",&a[i]);
s[i]=s[i-1]+a[i];
}
ul=k;max=s[k];pr=1;
for (i=1;i<=n-k;i++)
{
if (p+a[i]>0) p+=a[i];
else {p=0;t=i+1;}
if (max<p+s[i+k]-s[i])
{
max=p+s[i+k]-s[i];
pr=t;ul=i+k;
}
}
fprintf(g,"%ld %ld %ld",pr,ul,max);
fclose(f);
fclose(g);
return 0;
}
