Cod sursa(job #869964)
Utilizator | Data | 2 februarie 2013 17:18:11 | |
---|---|---|---|
Problema | Deque | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.32 kb |
#include<fstream>
using namespace std;
int n,a[5000005],Q[5000005],i,head=1,tail=0,k;
long long int s=0;
main(){
ifstream f("deque.in");
ofstream g("deque.out");
f>>n>>k;
for(i=1;i<=n;++i){
f>>a[i];
if(Q[head]==i-k) head++;
while(head<=tail&&a[i]<=a[Q[tail]]) tail--;
Q[++tail]=i;
if(i>=k) s+=a[Q[head]];}
g<<s;
}