Cod sursa(job #3127025)
Utilizator | Data | 7 mai 2023 09:42:02 | |
---|---|---|---|
Problema | Deque | Scor | 20 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.5 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int st,dr,n,k;
long long sol;
int v[5000002],poz[5000002];
int main()
{ dr = -1;
f>>n>>k;
for(int i=0; i<=n; i++)
{ f>>v[i];
while(st<=dr && v[i] <= v[poz[dr]])
dr = dr-1;
dr = dr + 1;
poz[dr] = i;
if(poz[st] == poz[dr]-k)
st++;
if(poz[dr]+1 >= k)
sol += v[poz[st]];
}
g<<sol;
f.close(); g.close();
return 0;
}