Cod sursa(job #542984)

Utilizator daniel14gavrilescu constantin-daniel daniel14 Data 27 februarie 2011 12:55:32
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include<fstream>
#include<deque>
using namespace std; 
#define maxn 5000001 
ifstream f("deque.in"); 
ofstream g("deque.out"); 
int n,k,i;
int h,t; //head & tail 
int A[maxn], Deck[maxn]; 
long long ss; 
int main() 
{   f>>n>>k;    
for (i = 1; i <= n; i++) 
	f>>A[i]; 
h=1;
t=0;
ss=0;
for (i=1;i<=n;++i){       
	while (h<=t&&A[i]<=A[Deck[t]]) 
		t--;       
	Deck[++t]=i; 
	if (Deck[h]==i-k) 
		++h;               
	if (i>=k) 
		ss+=A[Deck[h]];         
}    
g<<ss<<'\n';    
return 0;
}