观察每次机会可用的范围
void _()
{
int n, k;
cin >> n >> k;
vector<int> a(n + 1);
for (int i = 1; i <= n; i++)
cin >> a[i];
priority_queue<int> pq;
for (int i = n; i; i--)
{
if (i % k == 0 && pq.size())
pq.pop();
pq.push(a[i]);
}
int ans = 0;
while (pq.size())
{
ans += pq.top();
pq.pop();
}
cout << ans << '\n';
}

京公网安备 11010502036488号