Submission #343223

#TimeUsernameProblemLanguageResultExecution timeMemory
343223SprdaloGift (IZhO18_nicegift)C++17
7 / 100
804 ms77588 KiB
#include <bits/stdc++.h>

using namespace std;

#define int ll
typedef long long ll;
typedef long double ld;
typedef pair<int, int> pi;
typedef pair<ll, ll> pl;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef vector<double> vd;
typedef vector<bool> vb;
typedef vector<char> vc;
typedef vector<string> vs;
typedef vector<pi> vp;
typedef vector<pl> vpl;

void no(){
    cout << "-1\n";
    exit(0);
}

signed main()
{
    ios_base::sync_with_stdio(false); 
    cin.tie(nullptr); 
    cout.tie(nullptr); 
    cerr.tie(nullptr);    

    int n, k;
    cin >> n >> k;

    set<pi> s;
    for (int i = 0; i < n; ++i){
        int x;
        cin >> x;

        s.insert({-x, i});
    }

    vector<vi> sol;
    while(!s.empty()){
        int len = s.size();
        if (len < k) no();

        vp t;
        for (int i = 0; i < k; ++i){
            pi p = *s.begin();
            s.erase(s.begin());
            t.push_back({-p.first, p.second});
        }

        vi r = {t.back().first};
        int d = t.back().first;
        for (int i = 0; i < k; ++i){
            t[i].first -= d;
            r.push_back(t[i].second+1);
            if (t[i].first>0)
                s.insert({-t[i].first, t[i].second});
        }
        sol.push_back(r);
    }

    cout << (int)sol.size() << '\n';
    for (auto& i : sol){
        for (auto& j : i)
            cout << j << ' ';
        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...