Cod sursa(job #2347166)
| Utilizator | Data | 18 februarie 2019 16:03:42 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include<fstream>
using namespace std;
ifstream cin("deque.in");
ofstream cout("deque.out");
#define maxn 5000005
int v[maxn], dek[maxn], k, n;
long long sum;
int main(){
cin>>n>>k;
for(int i=1; i<=n; i++)
cin>>v[i];
int fr=1, bk=0;
for(int i=1; i<=n; i++){
while(fr<=bk && v[i]<=v[dek[bk]])
bk--;
dek[++bk]=i;
if(dek[fr]==i-k)
fr++;
if(i>=k)
sum+=v[dek[fr]];
}
cout<<sum;
return 0;
}
