제출 #237256

#제출 시각아이디문제언어결과실행 시간메모리
237256kshitij_sodaniGift (IZhO18_nicegift)C++17
49 / 100
2089 ms329640 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 llo it[1000001]; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); llo n,k; cin>>n>>k; priority_queue<pair<llo,llo>> x; llo ko=1; for(llo 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){ llo aa=n/__gcd(n,k); // cout<<aa<<endl; if((it[0]*n)%aa!=0){ cout<<-1<<endl; return 0; } deque<llo> cur; for(llo i=0;i<n;i++){ cur.pb(i); } cout<<aa<<endl; for(llo i=0;i<aa;i++){ cout<<((it[0]*n)/(aa*k))<<" "; for(llo j=0;j<k;j++){ llo x=cur.front(); cur.pop_front(); cur.pb(x); cout<<x+1<<" "; } cout<<endl; } return 0; } llo st=0; vector<vector<llo>> ans; while(x.size()){ if(x.size()<k){ st=1; break; } ans.pb({}); vector<pair<llo,llo>> kk; for(llo i=0;i<k;i++){ pair<llo,llo> 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; }

컴파일 시 표준 에러 (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...