Cod sursa(job #1051912)
| Utilizator | Data | 10 decembrie 2013 18:05:12 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include <fstream>
using namespace std;
int main(){
ifstream f("deque.in");
ofstream g("deque.out");
int n,*v,*q,k,a = 0,b = -1;
long long s = 0;
f>>n>>k;
v = new int[n];
q = new int[n];
for(int i=0;i<n;++i)
f>>v[i];
for(int i=0;i<n;++i){
while(a<=b && v[i]<=v[q[b]])
--b;
q[++b] = i;
if(q[a] == i-k)
++a;
if(i >= k-1)
s += v[q[a]];
}
g<<s;
delete v;
delete q;
f.close();
g.close();
return 0;
}
