This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#pragma GCC optimize("O3", "unroll-loops")
#define pb emplace_back
#define ins insert
#define ssize(x) (int)x.size()
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define pii pair <int, int>
#define pll pair <ll, ll>
#define pld pair <ld, ld>
#define st first
#define nd second
using namespace std;
using ll = int_fast64_t;
// using lll = __int128_t;
using ld = long double;
const int oo = 1e9 + 7;
const int mod = 1e9 + 7;
void solve(){
int n; cin >> n;
vector <pii> arr(n);
for(int i = 0; i < n; i ++){
cin >> arr[i].st;
arr[i].nd = i;
}
sort(all(arr));
vector <int> ans(n);
vector <vector<int>> which;
int counter = -1;
for(int i = n - 1; i >= 0; i --){
if(arr[i].st > i + 1){
pii mini = {oo, oo};
for(int j = 0; j <= counter; j ++){
mini = min(mini, {ssize(which[j]), j});
}
ans[arr[i].nd] = mini.nd;
which[mini.nd].pb(arr[i].nd);
continue;
}
counter ++;
which.push_back({});
for(int j = i; j >= i - arr[i].st + 1; j --){
ans[arr[j].nd] = counter;
which[counter].pb(arr[j].nd);
}
i -= arr[i].st - 1;
}
cout << counter + 1 << '\n';
for(int i = 0; i <= counter; i ++){
cout << ssize(which[i]) << ' ';
for(auto it: which[i]) cout << it + 1 << ' ';
cout << '\n';
}
}
signed main(){
ios_base::sync_with_stdio(0); cin.tie(0);
int t; t = 1;
// cin >> t;
while(t --) solve();
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... |
# | 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... |