Cod sursa(job #1670308)
| Utilizator | Data | 31 martie 2016 17:29:09 | |
|---|---|---|---|
| Problema | Deque | Scor | 25 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include <fstream>
using namespace std;
int n,i,k,v[5000001],p,u,s,d[50];
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--;
}
d[++u] = i;
if (i- d[p] == k)
p++;
if (i >= k)
s+=v[d[p]];
}
fout<<s;
return 0;
}
