Submission #484828

#TimeUsernameProblemLanguageResultExecution timeMemory
484828luka1234Gift (IZhO18_nicegift)C++14
30 / 100
250 ms47260 KiB
#include<bits/stdc++.h> #define ll long long #define ff first #define ss second using namespace std; int n,m; set<pair<int,int> > s; int a[1000001]; vector<vector<int> > ans; int sum=0; int main(){ cin>>n>>m; for(int k=1;k<=n;k++){ cin>>a[k]; s.insert({a[k],k}); sum+=a[k]; } if(sum%m!=0){ cout<<-1; return 0; } int bolo=(*s.rbegin()).ff; if(bolo>(sum/m)){ cout<<-1; return 0; } while(!s.empty()){ vector<pair<int,int> > chamateba; int sz=s.size(); while(s.size()>(sz-m)){ pair<int,int> f=*s.rbegin(); s.erase(*s.rbegin()); chamateba.push_back(f); } vector<int> ans1; ans1.push_back(1); for(int k=0;k<chamateba.size();k++){ pair<int,int> f=chamateba[k]; ans1.push_back(f.ss); f.ff--; if(f.ff!=0) s.insert(f); } ans.push_back(ans1); } cout<<ans.size()<<"\n"; for(int k=0;k<ans.size();k++){ for(int i=0;i<ans[k].size();i++){ cout<<ans[k][i]<<' '; } cout<<"\n"; } return 0; }

Compilation message (stderr)

nicegift.cpp: In function 'int main()':
nicegift.cpp:30:17: warning: comparison of integer expressions of different signedness: 'std::set<std::pair<int, int> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   30 |   while(s.size()>(sz-m)){
      |         ~~~~~~~~^~~~~~~
nicegift.cpp:37:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |   for(int k=0;k<chamateba.size();k++){
      |               ~^~~~~~~~~~~~~~~~~
nicegift.cpp:47:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |  for(int k=0;k<ans.size();k++){
      |              ~^~~~~~~~~~~
nicegift.cpp:48:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |   for(int i=0;i<ans[k].size();i++){
      |               ~^~~~~~~~~~~~~~
#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...