Cod sursa(job #3140305)
Utilizator | Vasilescu Cosmin Vasilescu_Cosmin | Data | 5 iulie 2023 14:42:38 |
---|---|---|---|
Problema | Deque | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.57 kb |
#include <fstream>
#include <iostream>
#include <vector>
#include <deque>
#define ll long long
using namespace std;
ifstream in ("deque.in");
ofstream out ("deque.out");
int main() {
int n,k;
ll ans = 0;
deque<int> v;
in>>n>>k;
vector<int> nr(n+1);
for(int i=1; i<=n ;i++){
in>>nr[i];
while(!v.empty() && nr[i] < nr[v.back()])
v.pop_back();
v.push_back(i);
if(i>k && v.front() == i-k){
v.pop_front();
}
if(i>=k)
ans += nr[v.front()];
}
out<<ans;
return 0;
}