Pagini recente » Cod sursa (job #1605920) | Cod sursa (job #1451723) | Cod sursa (job #2088163) | Cod sursa (job #1375911) | Cod sursa (job #3031621)
#include <fstream>
#include <queue>
#include <vector>
std::vector<int> v;
inline size_t st(int x)
{
return (size_t)x;
}
template<typename T>
T read_input(std::ifstream& in)
{
T temp{};
in >> temp;
return temp;
}
int main()
{
std::ifstream in("deque.in");
int n{ read_input<int>(in) };
int k{ read_input<int>(in) };
for (int i = 0; i < n; ++i)
{
v.push_back(read_input<int>(in));
}
in.close();
std::deque<int> d;
long long s{0};
for (int i = 0; i < n; ++i)
{
while (!d.empty() && v[st(i)] <= v[st(d.back())])
{
d.pop_back();
}
d.push_back(i);
if (d.front() == i - k)
{
d.pop_front();
}
if (i >= k - 1)
{
s += v[st(d.front())];
}
}
std::ofstream out("deque.out");
out << s;
out.close();
return 0;
}
// https://infoarena.ro/job_detail/3031577