Submission #1107936

#TimeUsernameProblemLanguageResultExecution timeMemory
1107936stdfloatGift (IZhO18_nicegift)C++17
30 / 100
238 ms95816 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; #define sz(v) (int)(v).size() #define all(v) (v).begin(), (v).end() #define ff first #define ss second #define pii pair<int, int> int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, k; cin >> n >> k; ll sm = 0; set<pii> s; for (int i = 0; i < n; i++) { int x; cin >> x; sm += x; s.insert({x, i}); } if (sm % k) return cout << -1, 0; if ((*s.begin()).ff == (*--s.end()).ff) { if (n % k) { assert(false); return cout << -1, 0; } assert(false); cout << n / k << '\n'; for (int i = 1; i <= n; i += k) { cout << (*s.begin()).ff << ' '; for (int j = i; j < i + k; j++) cout << j << ' '; cout << '\n'; } return 0; } vector<vector<int>> ans; while (!s.empty()) { if (sz(s) < k) return cout << -1, 0; vector<pii> v; ans.push_back({}); for (int i = 0; i < k; i++) { auto t = --s.end(); ans.back().push_back((*t).ss); if (1 < (*t).ff) v.push_back({(*t).ff - 1, (*t).ss}); s.erase(t); } for (auto i : v) s.insert(i); } cout << sz(ans) << '\n'; for (auto i : ans) { cout << "1 "; for (auto j : i) cout << j + 1 << ' '; 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...