#include<bits/stdc++.h>
using namespace std;
using pii = pair<int, int>;
#define X first
#define Y second
#define SZ(x) int(x.size())
#define pb push_back
const int MXN = 500;
int n, m, A[MXN];
int32_t main() {
cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0);
cin >> n;
assert(n<=500);
for(int i=0; i<n; i++) cin >> A[i];
cin >> m;
if(m==1) {
int b;
cin >> b;
vector<vector<int>> ans;
priority_queue<pii> pq;
for(int i=0; i<n; i++) pq.push(pii(A[i],i));
while(SZ(pq)>=b) {
vector<int> vec;
for(int i=0; i<b; i++) {
vec.pb(pq.top().Y); pq.pop();
}
ans.pb(vec);
for(int i : vec) if(A[i]>1) pq.push(pii(--A[i], i));
}
if(!pq.empty()) {
cout << "-1\n";
return 0;
}
cout << SZ(ans) << '\n';
for(auto i : ans) {
cout << SZ(i) << ' ';
for(auto j : i) cout << j+1 << ' ';
cout << '\n';
}
}
else assert(0);
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |