Cod sursa(job #2591183)
| Utilizator | Data | 29 martie 2020 22:19:15 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include<bits/stdc++.h>
using namespace std;
#define mp make_pair
#define pb push_back
#define ft first
#define sc second
#define ll long long
ifstream fin("deque.in"); ofstream fout("deque.out");
int n, t, q, k, l, a[5000005], v[5000010];
int main(){
fin>>n>>k;
ll sum=0;
int s=0, b=0;
for(int i=0; i<n; i++){
int x; fin>>x;
a[i]=x;
while(s-b>=1 && a[v[max(s-1, 0) ] ]>=a[i] ){s--;}
v[s]=i; s++;
if(i>=k-1){sum+=a[v[b] ]; if(v[b]<=i-k+1 ){b++; } }
}
fout<<sum;
return 0;
}
