Cod sursa(job #1243384)
| Utilizator | Data | 15 octombrie 2014 21:09:27 | |
|---|---|---|---|
| Problema | Deque | Scor | 85 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.61 kb |
#include <fstream>
#include <deque>
#define DIM 5000005
#define MARE 10000001
using namespace std;
int n, k, a[DIM];
long long sum;
deque <int> d;
int main()
{
int i;
ifstream f("deque.in");
ofstream g("deque.out");
f >> n >> k;
for (i = 1; i <= n; ++i)
f >> a[i];
int m = MARE;
for (i = 1; i <= n; ++i) {
for (;!d.empty() && a[d.front()] >= a[i];)
d.pop_front();
d.push_back(i);
if (i >= k)
sum += a[d.front()];
if (d.front() == i - k + 1)
d.pop_front();
}
g << sum;
f.close();
g.close();
}
