Pagini recente » Cod sursa (job #2169421) | Cod sursa (job #1965607) | Cod sursa (job #1975161) | Cod sursa (job #2676092) | Cod sursa (job #1646818)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
ifstream fin ("bleach.in");
ofstream fout ("bleach.out");
priority_queue <long long , vector<long long>, greater<long long> > data;
int N, K;
int main()
{
fin >>N >>K;
long long pmin = 0;
long long p = pmin;
for (int i = 1; i <= K + 1; ++i)
{
long long x;
fin >>x;
data.push(x);
}
if (p < data.top())
{
pmin += data.top() - p;
p = 2*data.top();
}
else
p += data.top();
data.pop();
for (int i = K + 2; i <= N; ++i)
{
long long x;
fin >>x;
data.push(x);
if (p < data.top())
{
pmin += data.top() - p;
p = 2*data.top();
}
else
p += data.top();
data.pop();
}
while (!data.empty())
{
if (p < data.top())
{
pmin += data.top() - p;
p = 2*data.top();
}
else
p += data.top();
data.pop();
}
fout <<pmin <<'\n';
return 0;
}