Cod sursa(job #2489827)
Utilizator | Hantig Lorena LorenaMaria | Data | 9 noiembrie 2019 12:09:12 |
---|---|---|---|
Problema | Deque | Scor | 60 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include <fstream>
#include <deque>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
deque <long long> q;
long long n,k,a[5000001],s;
int main()
{ in>>n>>k;
for(int i=1;i<=n;i++)
in>>a[i];
for(int i=1;i<=n;i++)
{ while(!q.empty() && a[q.back()]>a[i])
q.pop_back();
if(!q.empty() && q.front()<=i-k)
q.pop_front();
q.push_back(i);
if(i>=k)
s+=a[q.front()];
}
out<<s;
in.close();
out.close();
return 0;
}