Cod sursa(job #2207449)
| Utilizator | Data | 25 mai 2018 18:56:13 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include<fstream>
#include<deque>
#include<vector>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
deque<int> d;
vector<int> a;
int main() {
int n, k,x;
in>>n>>k;
long long sum = 0LL;
for(int i = 0; i < n; i++) {
in>>x;
a.push_back(x);
}
for(int i = 0; i < n; i++) {
while(!d.empty() && a[i] < a[d.back()])
d.pop_back();
d.push_back(i);
if(i - k == d.front()) d.pop_front();
if(i >= k - 1)
sum += a[d.front()];
}
out<<sum;
}