Cod sursa(job #2575698)
Utilizator | Data | 6 martie 2020 15:04:32 | |
---|---|---|---|
Problema | Deque | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.65 kb |
#include <bits/stdc++.h>
#define N_MAX 5000005
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int N, K, x, v[N_MAX];
deque < int > DQ;
long long sum;
int main()
{
fin >> N >> K;
for (int i = 1; i <= N; i++)
fin >> v[i];
DQ.push_front(1);
for (int i = 2; i <= N; i++)
{
while (DQ.size() && v[DQ.back()] > v[i])
DQ.pop_back();
DQ.push_back(i);
if (i >= K)
{
if (i - DQ.front() == K)
DQ.pop_front();
sum += v[DQ.front()];
}
}
fout << sum << "\n";
return 0;
}