Cod sursa(job #2377830)
Utilizator | Data | 11 martie 2019 10:56:49 | |
---|---|---|---|
Problema | Deque | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.62 kb |
#include <fstream>
#include <iostream>
#include <deque>
#include <vector>
using namespace std;
int main()
{
deque <int> dq;
vector <int> v;
long long s=0;
int N,K,i=0,k;
ifstream in("deque.in");
ofstream out("deque.out");
in>>N>>K;
while(i<N)
{
++i;
in>>k;
v.push_back(k);
while(dq.front()==i-K-1 &&dq.empty()==0)
dq.pop_front();
while(dq.empty()==0 && v[dq.back()]>=v[i-1])
dq.pop_back();
dq.push_back(i-1);
if(i>=K)
{
cout<<v[dq.front()]<<" ";
s=s+v[dq.front()];
}
}
out<<s;
}