Pagini recente » Cod sursa (job #914407) | Cod sursa (job #2718473) | Cod sursa (job #2437415) | Cod sursa (job #2141811) | Cod sursa (job #1324607)
#include<fstream>
#include<set>
#include<vector>
#include <stdint.h>
#define FIN "deque.in"
#define FOUT "deque.out"
#define MAX 5000000
using namespace std;
ifstream f(FIN);
ofstream g(FOUT);
struct setOrder
{
bool operator()(long long a,long long int b) const
{
return (int)a < (int)b;
}
};
multiset<int64_t, setOrder> heap;
int64_t arr[MAX];
int64_t sum;
int64_t n,k;
int read()
{
f >> n;
f >> k;
for(int64_t i=1;i<=n;i++)
{
f >> arr[i];
}
return 0;
}
int solve()
{
for(int i=1;i<=k;i++)
heap.insert(arr[i]);
int64_t index = k;
while(index < n)
{
sum += *heap.begin();
heap.erase(arr[index - k + 1]);
heap.insert(arr[index + 1]);
index++;
}
sum += *heap.begin();
return 0;
}
int write()
{
g << sum;
}
int main()
{
read();
solve();
write();
}