Pagini recente » Cod sursa (job #2081374) | Cod sursa (job #2635966) | Cod sursa (job #2956998) | Cod sursa (job #1065666) | Cod sursa (job #3038837)
#include<iostream>
#include<fstream>
#include<deque>
std::deque<int> d;
long long s = 0, n, k, x, min;
void afisareDeq()
{
for (int i = 0; i < d.size(); i++)
std::cout << d[i] << ' ';
std::cout << '\n';
}
void inDeq(int x)
{
while (d.size() > 0 && d.back() > x)
d.pop_back();
while (d.size() < k)
d.push_back(x);
}
int main()
{
std::ifstream fin("deque.in");
fin >> n >> k;
for (int i = 0; i < k; i++)
{
fin >> x;
d.push_back(x);
for (int j = i - 1; j > 0 && d[i] < d[j]; j--)
d[j] = x;
}
for (int i = k; i < n; i++)
{
s += d.front();
d.pop_front();
fin >> x;
inDeq(x);
}
s += d.front();
fin.close();
std::ofstream fout("deque.out");
fout << s;
fout.close();
}