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...