Cod sursa(job #1710318)
Utilizator | Data | 28 mai 2016 19:49:18 | |
---|---|---|---|
Problema | Deque | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
#include <bits/stdc++.h>
#define N 5000001
using namespace std;
ifstream fin("deque.in");ofstream fout("deque.out");
long long suma=0;deque <int> D;int a[N],n,k;
int main()
{
fin>>n>>k;for(int i=1;i<=n;++i){fin>>a[i];}
for(int i=1;i<=n;++i)
{
while(D.size()&&a[i]<a[D.back()])D.pop_back();
D.push_back(i);
if(D.front()==i-k)D.pop_front();
if(i>=k)suma+=a[D.front()];
}
fout<<suma;
return 0;
}