Cod sursa(job #2842346)
| Utilizator | Data | 31 ianuarie 2022 17:27:34 | |
|---|---|---|---|
| Problema | Deque | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.67 kb |
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream f ("deque.in");
ofstream g ("deque.out");
int a[5000001];
int main()
{
deque <int> D;
int n, k;
long long s = 0;
f >> n >> k;
for (int i = 1; i <= n; i++)
{
f >> a[i];
}
for (int i = 1; i <= n; i++)
{
while (D.empty() == false && a[i] < D.back())
{
D.pop_back();
}
D.push_back(a[i]);
if (D.front() == a[i - k])
{
D.pop_front();
}
if (i != 1 && i != 2)
{
s += D.front();
}
}
g << s;
}
