Cod sursa(job #3328154)
| Utilizator | Data | 6 decembrie 2025 15:07:46 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.6 kb |
#include <iostream>
#include <bits/stdc++.h>
#define NMAX 5000008
using namespace std;
ifstream fin ("deque.in");
ofstream fout ("deque.out");
int N,K;
int Deque[NMAX],v[NMAX],Front,Back;
long long int Sum;
int main()
{
fin>>N>>K;
for(int i=1;i<=N;i++)
fin>>v[i];
for(int i=1;i<=N;i++)
{
while(Front<=Back && v[i]<=v[Deque[Back]])
{
Back--;
}
Back++;
Deque[Back]=i;
if(Deque[Front]==i-K)
Front++;
if(i>=K)
Sum+=v[Deque[Front]];
}
fout<<Sum;
return 0;
}
