Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cstdio>#include <cstring>#include <queue>#include <algorithm>#include <iostream>#include <cmath>#include <map>#include <vector>#include <set>#include <string>#define PB push_back#define FT first#define SD second#define MP make_pair#define INF 0x3f3f3f3fusing namespace std;typedef long long LL;typedef unsigned long long ULL;typedef pair<int,int> P;const int N = 5 + 1e5,MOD = 7+1e9;int n, a[N];LL Q;bool check(int k){if(k > n) return 0;LL ans = 0;int cnt = 0;priority_queue<int,vector<int>,less<int> > q;for(int i = 1;i <= k;i ++) q.push(a[i]);for(int i = k + 1;i <= n;i ++) {ans += 1LL * (++cnt) * q.top();