Cod sursa(job #2125837)
| Utilizator | Data | 8 februarie 2018 19:28:42 | |
|---|---|---|---|
| Problema | Deque | Scor | 25 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.62 kb |
#include <iostream>
#include <bits/stdc++.h>
#define INFILE "deque.in"
#define OUTFILE "deque.out"
using namespace std;
ifstream in(INFILE);
ofstream out(OUTFILE);
int N,K;
int main()
{
in>>N>>K;
deque<pair<int,int>> dcoada;
int s=0;
for(int i=1;i<=N;i++){
int x;
in>>x;
while(!dcoada.empty()&&x<=dcoada.back().first)
dcoada.pop_back();
dcoada.push_back(make_pair(x,i));
if(i-K==dcoada.front().second){
dcoada.pop_front();
}
if(i>=K)
s+=dcoada.front().first;
}
out<<s;
return 0;
}
