Cod sursa(job #536781)

Utilizator adelinacAdelina Cristoiu adelinac Data 19 februarie 2011 12:29:19
Problema Secventa 2 Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<stdio.h>
#define oo 0x3f3f3f3f
#define dim 50010
using namespace std;

int A[dim],X[dim],Y[dim],n,i,k,ii,max,v[dim];
int main()
{
	FILE *f=fopen("secv2.in","r"), *g=fopen("secv2.out","w");
	
fscanf(f,"%d %d",&n,&k);

for(i=1;i<=n;i++)
	fscanf(f,"%d",&v[i]);

for(i=1;i<=k;i++)
	{A[i]=A[i-1]+v[i];
	X[i]=1;
	Y[i]=i;
	}
	max=A[k]; ii=k;
for(i=k+1;i<=n;i++)
{
	A[i]=A[i-1]+v[i]; //continui sume partiale
	X[i]=X[i-1];
	Y[i]=i;
	if(A[i] < A[i-1] - v[i-k] + v[i])
	{
		X[i]=i-k+1;
		A[i] = A[i-1] - v[i-k] + v[i];
	}
	if(max < A[i] )
	{
		max=A[i];
		ii=i;
	}
}

fprintf(g,"%d %d %d\n",X[ii],Y[ii],max);

fclose(f);
fclose(g);
return 0;
}