Submission #1209626

#TimeUsernameProblemLanguageResultExecution timeMemory
1209626asdfghqwertGift (IZhO18_nicegift)C++20
0 / 100
2115 ms589824 KiB
#include <bits/stdc++.h> #pragma GCC optimize("Ofast") using namespace std; typedef long long ll; const int maxn = 3e5 + 1 , delta = 66529; #define int long long int int32_t main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n , k , sum = 0; cin >> n >> k; priority_queue<pair<int , int>, vector<pair<int , int>>> pq; for (int i = 1; i <= n; i++) { int x; cin >> x; pq.push({x , i}); sum += x; } if(sum % k != 0 || pq.top().first > sum / k) { cout << "-1" << endl; return 0; } vector<vector<int>> opr; while(pq.top().first != 0){ vector<pair<int , int>> top_k(k); for(int i = 0 ; i < k ; i++) { top_k[i] = pq.top(); pq.pop(); } vector<int> nxt_opr(k + 1); nxt_opr[0] = top_k[0].first - pq.top().first + 1; if(pq.top().first == 0)nxt_opr[0]--; for(int i = 1 ; i <= k ; i++){ nxt_opr[i] = top_k[i - 1].second; pq.push({top_k[i - 1].first - nxt_opr[0] , top_k[i - 1].second}); } opr.push_back(nxt_opr); } cout << opr.size() << '\n'; for(auto v : opr){ for(int i : v){ cout << i << ' '; }cout << '\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...