Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cstdio>#include <cstring>#include <iostream>#include <queue>const int mx = 100005;using namespace std;int n, p[mx];long long q;priority_queue<int> pq;bool ok(int a) {long long ans = 0;int t = 1;while(!pq.empty())pq.pop();for(int i = 0; i < a; i++)pq.push(p[i]);for(int i = a; i < n; i++) {ans += pq.top() * t;t++;pq.pop();pq.push(p[i]);}for(int i = 0; i < a; i++) {ans += pq.top() * t;t++;pq.pop();}// cout << a << " " << ans << endl;if(ans <= q)return true;return false;