Cod sursa(job #1210972)
Utilizator | Marius Nicoli mariusn01 | Data | 21 iulie 2014 18:42:07 |
---|---|---|---|
Problema | Deque | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.54 kb |
#include <fstream>
#define DIM 5000010
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int V[DIM];
int D[DIM];
long long s;
int n, k, i, p, u;
int main() {
fin>>n>>k;
for (i=1;i<=n;i++) {
fin>>V[i];
}
D[1] = 1;
p = u = 1;
for (i=2;i<=n;i++) {
while (p <= u && V[i] < V[D[u]])
u--;
D[++u] = i;
if (i-D[p] == k)
p++;
if (i >= k)
s += V[D[p]];
}
fout<<s;
return 0;
}