Cod sursa(job #3126218)
Utilizator | Data | 6 mai 2023 13:13:40 | |
---|---|---|---|
Problema | Deque | Scor | 25 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.61 kb |
#include <iostream>
#include <fstream>
#include <stack>
#include <deque>
#include <vector>
using namespace std;
int main(){
ifstream f("deque.in");
ofstream g("deque.out");
int N, K;
int st=0, dr=0, a, sum=0, i = 0, m = 0;
f >> N >> K;
vector<int> Q(N+1), V(N+1);
while(f>>a){
V[i] = a;
m+=1;
while (dr-st>0 && V[i] <= V[Q[dr-1]]){
dr-=1;
}
Q[dr] = i; dr+=1;
if(Q[st]<=i-K){
st++;
}
if (K<=m){
sum += V[Q[st]];
}
i++;
}
g << sum;
f.close();
g.close();
return 0;
}