Cod sursa(job #1237014)
| Utilizator | Data | 2 octombrie 2014 23:16:53 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include <fstream>
#include <deque>
#include <vector>
using namespace std;
int main() {
ifstream cin("deque.in");
ofstream cout("deque.out");
int N, K;
cin >> N >> K;
vector<int> a(N);
deque<int> deq;
long long sum = 0;
for (int i = 0; i < N; i++) {
cin >> a[i];
while (!deq.empty() && a[deq.back()] >= a[i]) {
deq.pop_back();
}
deq.push_back(i);
if (deq.front() == i - K) {
deq.pop_front();
}
if (i >= K - 1) {
sum += a[deq.front()];
}
}
cout << sum;
}