Cod sursa(job #3275667)
Utilizator | Data | 11 februarie 2025 14:18:48 | |
---|---|---|---|
Problema | Deque | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.59 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
const int N=5e6;
int v[N+1],coada[N+1];
int main()
{
int n,k;
long long s=0;
fin>>n>>k;
int inc=1,sf=0;
for(int i=1;i<=n;i++)
{
fin>>v[i];
while(sf>=inc and v[i]<v[coada[sf]])
sf--;
sf++;
coada[sf]=i;
if(i>=k)
{
if(coada[sf]-coada[inc]+1>k)
{
inc++;
}
s+=v[coada[inc]];
}
}
fout<<s;
return 0;
}