Cod sursa(job #1331398)
Utilizator | Data | 31 ianuarie 2015 16:34:24 | |
---|---|---|---|
Problema | Deque | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
#include<fstream>
using namespace std;
int n, k, i, d[5000003], x[5000003], p, u;
long long s;
ifstream in("deque.in");
ofstream out("deque.out");
int main(){
in>>n>>k;
for(i=1; i<=n; i++)
in>>x[i];
d[1]=1;
p=u=1;
for(i=2; i<=n; i++){
while(p<=u && x[i]<=x[d[u]])
u--;
d[++u]=i;
if(d[u]-d[p]>=k)
p++;
if(i>=k)
s+=x[d[p]];
}
out<<s;
return 0;
}