Cod sursa(job #2205449)
Utilizator | Chesa Matei berindei | Data | 19 mai 2018 10:53:50 |
---|---|---|---|
Problema | Deque | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
struct ELEM{
int nr, poz;
};
deque<ELEM> deck;
int main(){
long long n, k, i, nr, s=0;
in >> n >> k;
for (i=1; i<=n; i++){
in >> nr;
while (!deck.empty() && nr<deck.back().nr)
deck.pop_back();
deck.push_back({nr, i});
if (i>=k) s+=deck.front().nr;
if (deck.front().poz-1==i-k) deck.pop_front();
}
out << s;
}