Cod sursa(job #2887649)
| Utilizator | Data | 9 aprilie 2022 22:40:59 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.61 kb |
#include <fstream>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
#define NMAX 5000004
int x[NMAX], deq[NMAX], N, K;
long long res;
int main()
{
fin>>N>>K;
for(int i = 1; i <= N; ++i)
fin>>x[i];
int right = 0, left = 1;
for(int i = 1; i <= N; ++i)
{
while(right >= left && x[i] <= x[deq[right]])
right--;
deq[++right] = i;
if(i >= K)
{
res += x[deq[left]];
if(deq[left] == i - K + 1)
left++;
}
}
fout<<res;
return 0;
}
