Cod sursa(job #1218518)
| Utilizator | Data | 11 august 2014 16:04:46 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.54 kb |
# include <fstream>
# include <iostream>
# include <deque>
# include <vector>
using namespace std;
ifstream fi("deque.in");
ofstream fo("deque.out");
vector <int> s;
deque <int> p;
int main(void)
{
int n,k;
long long M=0;
fi>>n>>k;
s.resize(n+5);
for (int i=1;i<=n;++i) fi>>s[i];
for (int i=1;i<=n;++i)
{
while (!p.empty() && s[i]<=s[p.back()]) p.pop_back();
p.push_back(i);
if (p.front() == i-k) p.pop_front();
if (i>=k) M+=s[p.front()];
}
fo<<M<<"\n";
}
