Cod sursa(job #3211217)
Utilizator | Data | 8 martie 2024 18:58:32 | |
---|---|---|---|
Problema | Deque | Scor | 25 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.55 kb |
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
deque <int> D;
int main()
{
int n,k,s=0,a[5000001];
in>>n>>k;
for(int i=0; i<n; i++)
in>>a[i];
for(int i=0; i<n; i++)
{
while(!D.empty()&&a[i]<a[D.back()])
D.pop_back();
D.push_back(i);
if(i==D.front()+k)
{
D.pop_front();
}
if(i>=k-1)
s+=a[D.front()];
}
out<<s;
return 0;
}