Cod sursa(job #1495527)
| Utilizator | Data | 3 octombrie 2015 11:10:43 | |
|---|---|---|---|
| Problema | Deque | Scor | 25 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include <fstream>
#include <deque>
using namespace std;
struct a{
int v, poz;
};
deque <a> d;
int n, k, q;
int r = 0;
int main(){
ifstream in("deque.in");
ofstream out("deque.out");
in >> n >> k;
for (int i = 0; i < n; i++){
in >> q;
while(!d.empty() && q <= d.front().v)
d.pop_front();
d.push_front((a){q, i});
if (d.front().poz - d.back().poz >= k)
d.pop_back();
if(i + 1 >= k)
r += d.back().v;
}
out << r;
return 0;
}
