Pagini recente » Cod sursa (job #1316278) | Cod sursa (job #785209) | Cod sursa (job #2762661) | Cod sursa (job #3270101) | Cod sursa (job #39333)
Cod sursa(job #39333)
#include<stdio.h>
int n,ki,i;
typedef struct nod
{int x;int i,s;long sum;nod *urm;};
nod *p;
void citire()
{scanf("%d %d",&n,&ki);
if(n==0) return;
p=new nod;
scanf("%d",&p->x);
p->i=1;
nod *u,*t;
u=p;
for(i=2;i<=n;i++)
{t=new nod;
scanf("%d",&t->x);
t->i=i;
u->urm=t;
u=t;}
u->urm=NULL;}
void solve()
{nod *j,*k,*m;
m=NULL;
long s;
for(i=1,j=p;i<=(n-ki);i++,j=j->urm)
{k=j;
j->sum=0;
for(;k->i<=i+ki-1;k=k->urm)
j->sum=j->sum+k->x;
j->s=i+ki-1;
s=j->sum;
for(;k;k=k->urm)
{s=s+k->x;
if(s>j->sum){j->sum=s;j->s=k->i;}}
if(!m||j->sum>m->sum) m=j;}
printf("%d %d %ld\n",m->i,m->s,m->sum);
}
int main()
{freopen("secv2.in","r",stdin);
char buf[2000000];
setvbuf(stdin,buf,_IOFBF,2000000);
freopen("secv2.out","w",stdout);
citire();
solve();
fclose(stdout);
return 0;}