Cod sursa(job #2862563)
| Utilizator | Data | 5 martie 2022 15:28:44 | |
|---|---|---|---|
| Problema | Deque | Scor | 25 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.64 kb |
#include <iostream>
#include <deque>
using namespace std;
int a[5000001];
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
int n,k;
cin>>n>>k;
deque<int> Q(n+1);
for(int i=1;i<=n;i++){
cin>>a[i];
}
int sum=0;
int front=1;
int back=0;
for(int i=1;i<=n;i++){
while(front<=back && a[Q[back]]>=a[i]){
back--;
}
Q[++back]=i;
if(Q[front]==i-k){
front++;
}
if(i>=k){
sum+=a[Q[front]];
}
}
cout << sum;
return 0;
}
