Cod sursa(job #390284)

Utilizator nautilusCohal Alexandru nautilus Data 3 februarie 2010 13:40:43
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include<fstream.h>
#define max 5000001

long a[max],n,k,in,sf,deque[max];
long long suma;

int main()
{
 long i;
	
 ifstream fin("deque.in");
 fin>>n>>k;
 for (i=1; i<=n; i++)
	 fin>>a[i];
 
 in=1; sf=0;
 for (i=1; i<=n; i++)
	 {
	  while (in<=sf && a[i]<=a[deque[sf]])
		  sf--;
	  sf++;
	  deque[sf]=i;
	  if (deque[in]==i-k)
		 in++;
	  if (i>=k)
		 suma=suma+a[deque[in]];
	 }
 
 ofstream fout("deque.out");
 fout<<suma;
 
 fin.close();
 fout.close();
 
 return 0;
}