Cod sursa(job #1259904)
Utilizator | Data | 10 noiembrie 2014 18:09:57 | |
---|---|---|---|
Problema | Deque | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.61 kb |
#include<fstream>
using namespace std;
int n, i, p, u, k;
int v[5000001], d[5000001];
long long sum;
ifstream fin("deque.in");
ofstream fout("deque.out");
int main(){
fin>> n >> k;
for(i = 1; i <= n; i++){
fin>> v[i];
}
p = 1;
u = 1;
d[1] = 1;
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){
sum += v[d[p]];
// fout<< v[d[p]] <<" ";
}
}
fout<< sum;
return 0;
}