Cod sursa(job #2394330)
Utilizator | Data | 1 aprilie 2019 15:52:42 | |
---|---|---|---|
Problema | Deque | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | excelenta-tema3 | Marime | 0.58 kb |
#include <fstream>
#include <deque>
#include <algorithm>
using namespace std;
ifstream in ("deque.in");
ofstream out ("deque.out");
int v[5000001];
int main ()
{
deque <long long> d;
long long n,k,p,s=0,a=0;
in>>n>>k;
for (int i=1;i<=n;++i)
in>>v[i];
for (int i=1;i<=n;++i)
{
p=v[i];
while ( d.empty()==0 && v[d.back()]>p)
d.pop_back();
d.push_back(i);
if (i-k==d.front())
d.pop_front();
if (i>=k)
s+=v[d.front()];
}
out<<s;
return 0;
}