Cod sursa(job #2036078)
Utilizator | Nedelcu Mihai Vlad nedelcu11 | Data | 10 octombrie 2017 11:43:51 |
---|---|---|---|
Problema | Deque | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
#include <fstream>
#include <deque>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
deque<int> B;
int n,k,a[5000001];
long long s;
int main()
{ f>>n>>k;
for(int i=1;i<=n;i++)
{ f>>a[i];
while(!B.empty() and a[B.front()]>a[i])
B.pop_front();
B.push_front(i);
if(!B.empty() and i-B.back()>=k)
B.pop_back();
if(i>=k) s+=a[B.back()];
}
g<<s;
return 0;
}