Submission #172866

#TimeUsernameProblemLanguageResultExecution timeMemory
172866muhammad_hokimiyonGift (IZhO18_nicegift)C++14
30 / 100
71 ms10552 KiB
#include <bits/stdc++.h>

#pragma GCC optimize("Ofast")

#define fi first
#define se second
#define ll long long

using namespace std;

const int N = 1e5 + 7;
const int M = 23;
const int mod = 998244353;

int n,k;
int a[N];
set < pair < int , int > > s;

void solve1()
{
    cin >> n >> k;
    for( int i = 1; i <= n; i++ ){
        cin >> a[i];
        s.insert({a[i] , i});
    }
    int ans = 0;
    while( !s.empty() ){
        if( (int)s.size() < k ){
            cout << -1;
            return;
        }
        int sz = 1;
        vector < pair < int , int > > v;
        while( sz <= k ){
            auto x = *--s.end();
            s.erase(--s.end());
            x.fi--;
            v.push_back(x);
            sz++;
        }
        ans++;
        for( auto x : v ){
            if( x.fi > 0 )s.insert(x);
        }
    }
    for( int i = 1; i <= n; i++ ){
        s.insert({a[i] , i});
    }
    cout << ans << "\n";
    while( !s.empty() ){
        int sz = 1;
        vector < pair < int , int > > v;
        cout << 1 << " ";
        while( sz <= k ){
            auto x = *--s.end();
            s.erase(--s.end());
            x.fi--;
            cout << x.se << " ";
            v.push_back(x);
            sz++;
        }
        cout << "\n";
        for( auto x : v ){
            if( x.fi > 0 )s.insert(x);
        }
    }
}

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    //freopen( "input.txt" , "r" , stdin );
    //freopen( "output.txt" , "w" , stdout );

    int cghf = 1;//cin >> cghf;
    while( cghf-- ){
        solve1();
    }
}
#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...