Submission #1211700

#TimeUsernameProblemLanguageResultExecution timeMemory
1211700adhityamvGift (IZhO18_nicegift)C++20
30 / 100
1931 ms589824 KiB
#include <algorithm> #include <array> #include <bitset> #include <cassert> #include <chrono> #include <climits> #include <cmath> #include <complex> #include <cstring> #include <functional> #include <iomanip> #include <iostream> #include <map> #include <numeric> #include <queue> #include <random> #include <set> #include <vector> #include <stack> using namespace std; #define ll long long #define mp make_pair #define fi first #define pii pair<int,int> #define se second //const int INF=1000000000000000000; const int INF=1e9; const int N=1000000; const int M=998244353; const int ln=20; template<typename T> std::ostream& operator<< (std::ostream& os,pair<T,T> p){ return os << p.fi << "," << p.se << " "; } void solve(){ int n,k; cin >> n >> k; int a[n]; for(int i=0;i<n;i++) cin >> a[i]; set<pii> s; for(int i=0;i<n;i++) s.insert(mp(-a[i],i)); vector<vector<int>> ans; while(!s.empty()){ if(s.size()<k){ cout << -1 << "\n"; return; } ans.push_back({}); for(int i=0;i<k;i++){ auto it=s.begin(); ans.back().push_back((*it).se); s.erase(it); } for(int i:ans.back()){ a[i]--; if(a[i]!=0){ s.insert(mp(-a[i],i)); } } } cout << ans.size() << "\n"; for(auto v:ans){ cout << 1 << " "; for(int i:v) cout << i+1 << " "; cout << "\n"; } } signed main(){ auto begin = std::chrono::high_resolution_clock::now(); ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int t; //cin >> t; t=1; while(t--) solve(); auto end = std::chrono::high_resolution_clock::now(); auto elapsed = std::chrono::duration_cast<std::chrono::nanoseconds>(end - begin); cerr << "Time measured: " << elapsed.count() * 1e-9 << " seconds.\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...