Cod sursa(job #3369712)
| Utilizator | Data | 21 octombrie 2026 20:41:20 | |
|---|---|---|---|
| Problema | Deque | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.68 kb |
#include <iostream>
using namespace std;
#define L 5000002
int deq[L],rasp[L];
int main(){
ifstream cin ("deque.in");
ofstream cout ("deque.out");
int n,i,z,prim,ultim,k,minim,s;
cin >> n >> k;
prim=ultim=0;
for(i=0;i<n;i++){
if(i>=k){
if((minim=deq[prim])==rasp[i-k])
prim=(prim+1)%L;
rasp[i-k]=minim;
}
cin >> z;
rasp[i]=z;
while(ultim!=prim&&deq[ultim-1]>z)
ultim=(ultim-1+L)%L;
deq[ultim]=z;
ultim=(ultim+1)%L;
}
rasp[i-k]=deq[prim];
s=0;
for(i=0;i<=n-k;i++)
s+=rasp[i];
cout << s;
return 0;
}
