Cod sursa(job #2743730)
Utilizator | Data | 23 aprilie 2021 14:38:34 | |
---|---|---|---|
Problema | Deque | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.63 kb |
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int v[5000005],poz[5000005],x[5000005];
long long n,m,i,j,k,maxim,s,sum,p,u;
int main(){
fin>>n>>k;
for(i=1;i<=n;i++)
fin>>v[i];
p=1;
u=1;
x[1]=v[1];
poz[1]=1;
for(i=2;i<=n;i++){
if(i-poz[p]+1>k)
p++;
u++;
x[u]=v[i];
poz[u]=i;
while(x[u]<=x[u-1]&&u>p){
x[u-1]=x[u];
poz[u-1]=poz[u];
u--;
}
if(i>=k)
sum+=x[p];
}
fout<<sum;
return 0;
}