Submission #237255

#TimeUsernameProblemLanguageResultExecution timeMemory
237255kshitij_sodaniGift (IZhO18_nicegift)C++17
30 / 100
145 ms4480 KiB
#include <bits/stdc++.h> using namespace std; typedef int64_t llo; #define mp make_pair #define pb push_back #define a first #define b second int it[1000001]; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); int n,k; cin>>n>>k; priority_queue<pair<int,int>> x; int ko=1; for(int i=0;i<n;i++){ cin>>it[i]; if(it[i]>0){ x.push({it[i],i}); } if(i>0){ if(it[i]!=it[i-1]){ ko=0; } } } if(ko){ int aa=n/__gcd(n,k); // cout<<aa<<endl; if((it[0]*n)%aa!=0){ cout<<-1<<endl; return 0; } deque<int> cur; for(int i=0;i<n;i++){ cur.pb(i); } cout<<aa<<endl; for(int i=0;i<aa;i++){ cout<<((it[0]*n)/(aa*k))<<" "; for(int j=0;j<k;j++){ int x=cur.front(); cur.pop_front(); cur.pb(x); cout<<x+1<<" "; } cout<<endl; } return 0; } int st=0; vector<vector<int>> ans; while(x.size()){ if(x.size()<k){ st=1; break; } ans.pb({}); vector<pair<int,int>> kk; for(int i=0;i<k;i++){ pair<int,int> no=x.top(); x.pop(); ans.back().pb(no.b); kk.pb(no); } for(auto j:kk){ if(j.a>1){ x.push({j.a-1,j.b}); } } } if(st){ cout<<-1<<endl; } else{ cout<<ans.size()<<endl; for(auto j:ans){ cout<<1<<" "; for(auto i:j){ cout<<i+1<<" "; } cout<<endl; } } return 0; }

Compilation message (stderr)

nicegift.cpp: In function 'int main()':
nicegift.cpp:55:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if(x.size()<k){
      ~~~~~~~~^~
#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...