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