Cod sursa(job #1259914)
Utilizator | Data | 10 noiembrie 2014 18:16:17 | |
---|---|---|---|
Problema | Deque | Scor | 25 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.44 kb |
#include <fstream>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int n, k, i, p, u, s;
int v[5000002], d[5000002];
int main(){
fin >> n >> k;
p = 1;
u = 1;
d[p] = 1;
for(i = 1; i <= n; i ++)
fin >> v[i];
for(i = 2; i <= n; i ++){
while(p <= u && v[i] < v[d[u]])
u --;
u ++;
d[u] = i;
if(i - d[p] == k)
p ++;
if(i >= k)
s += v[d[p]];
}
fout << s;
return 0;
}