Cod sursa(job #2475)

Utilizator MarcvsHdrMihai Leonte MarcvsHdr Data 17 decembrie 2006 12:07:52
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
# include <stdio.h>

const int MAX=50000;
long int n,k,i,j,pozmax,ninc,nincmax,sig[MAX+1],v[MAX+1],max[MAX];

int main()
{
FILE *f=fopen("secv2.in","r");
fscanf(f,"%d%d",&n,&k);
for (i=1;i<=n;i++) fscanf(f,"%ld",&v[i]);

for (i=1;i<=k;i++) sig[k]+=v[i];
for (i=k+1;i<=n;i++) sig[i]=sig[i-1]-v[i-k]+v[i];
max[k]=sig[k];ninc=0;pozmax=k,nincmax=0;
for (i=k+1;i<=n;i++)
	if (sig[i]>v[i]+max[i-1])
		{
		ninc=0;
		max[i]=sig[i];
		if (max[i-1]>max[pozmax]) {pozmax=i;nincmax=ninc;}
		}
	else
		{
		ninc++;
		max[i]=v[i]+max[i-1];
		if (max[i]>max[pozmax])   {pozmax=i;nincmax=ninc;}
		}
FILE *g=fopen("secv2.out","w");
fprintf(g,"%ld %ld %ld\n",pozmax-k-nincmax+1,pozmax,max[pozmax]);
fcloseall();
return 0;
}