Cod sursa(job #2889470)
| Utilizator | Data | 12 aprilie 2022 20:05:14 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.59 kb |
#include<fstream>
#include<iostream>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int v[5000001],deq[5000001];
int n,k,st,dr;
long long Smin;
int main ()
{
int i;
int st = 1, dr = 0;
f>>n>>k;
for(i=1;i<=n;i++)
f>>v[i];
for(i = 1; i <=n; i++){
while(dr >= st && v[i] <= v[deq[dr]]) dr--;
dr++;
deq[dr] = i;
if(i >= k){
Smin+= v[deq[st]];
if(deq[st] == i - k + 1) st++;
}
}
g<<Smin;
f.close();
g.close();
return 0;
}
