Cod sursa(job #1040238)

Utilizator TibixbAndrei Tiberiu Tibixb Data 24 noiembrie 2013 11:17:44
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include<fstream>
using namespace std;
int p, u, i, D[5000003], v[5000003], k, n;
long long sum;
FILE*fin=fopen("deque.in","r");
ofstream fout("deque.out");
int main(){
	fscanf(fin,"%d%d", &n, &k);
	for(i=1; i<=n; i++)
		fscanf(fin,"%d", &v[i]);
	p=1; u=0;
	for(i=1; i<=n; i++){
		while(p<=u && v[i]<=v[D[u]])
			u--;
		D[++u]=i;
		if(D[u]-D[p]==k)
			p++;
		if(i>=k)
			sum+=v[D[p]];
	}
	fout<<sum;
return 0;
}