Cod sursa(job #632669)

Utilizator DaicuDaicu Alexandru Daicu Data 11 noiembrie 2011 22:41:20
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#include<fstream>
#define maxn 5000010
using namespace std;
int dq[maxn],poz[maxn];
int n,k;
long long s=0;
int main(){
	ifstream fin("deque.in");
  ofstream fout("deque.out");
	fin>>n>>k;
	int f=1,b=0;
	for(int i=1;i<=n;i++){
		fin>>poz[i];
		while(f<=b && poz[dq[b]]>=poz[i])
			b--;
		dq[++b]=i;
		
		if(i>=k){
			if((i-dq[f])>=k)
			++f;
			s+=poz[dq[f]];
		}
		
	}	
	fout<<s;
	fin.close(); fout.close();
	return 0;
}