- #include <bits/stdc++.h>
- #define ll long long int
- #define ld long double
- using namespace std;
-
- void mainSolve()
- {
- ll n;
- cin >> n;
- vector<ll> v(n);
- for (int i = 0; i < n; i++)
- cin >> v[i];
- vector<vector<ll>> ans;
- vector<ll> sub;
- while (true)
- {
- ll max_val = 0;
- for (ll x : v)
- max_val = max(max_val, x);
- if (max_val == 0)
- break;
- vector<ll> ss;
- ll min_index = 0;
- ll min_val = max_val;
- for (int i = 0; i < n; i++)
- {
- if (v[i] == max_val)
- min_index = i;
- }
- for (int i = 0; i < n; i++)
- {
- if (v[i] > (max_val / 2))
- {
- ss.push_back(i);
- if (v[i] <= v[min_index])
- min_index = i;
- }
-
- }
- min_val = v[min_index];
- ans.push_back(ss);
- sub.push_back(min_index);
- for (ll x : ss)
- v[x] -= min_val;
-
- }
- cout << ans.size() << endl;
- for (int i = 0; i < (ans.size()); i++)
- {
- vector<ll> ss = ans[i];
- cout << (ss.size()) << endl;
- for (ll x : ss)
- cout << (x + 1) << " ";
- cout << endl;
- cout << "- " << (sub[i] + 1) << endl;
- }
- }
-
- int main()
- {
- #ifndef ONLINE_JUDGE
- freopen("input.txt", "r", stdin);
- freopen("output.txt", "w", stdout);
- #endif
- int t;
- t = 1;
- while (t--)
- {
- mainSolve();
- }
- return 0;
- }