Submission #89538

#TimeUsernameProblemLanguageResultExecution timeMemory
89538Harvey_RollensGift (IZhO18_nicegift)C++14
30 / 100
1870 ms93256 KiB
#include<bits/stdc++.h> #define ll long long #define ld long double #define st string #define fr first #define se second const ll mod=1e9+7; using namespace std; set<pair<ll, ll> > a; vector<pair<ll, vector<ll> > > v; map<ll, ll> us; int main() { //freopen("1.txt", "r", stdin); //freopen("1.txt", "w", stdout); ios_base::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL); ll n, k, s=0, f; cin>>n>>k; for(ll i=1; i<=n; i++) { ll x; cin>>x; us[x]++; a.insert({x, i}); f=x; s+=x; } if(us[f]!=n) { f=1; } if(s%k!=0) { cout<<-1; return 0; } while(a.size()>=k) { std::vector<ll> q; std::vector<pair<ll, ll> > y; for(ll i=1; i<=k; i++) { //cout<<i<<" "<<a.size()<<endl; std::pair<ll, ll> x; x=*a.rbegin(); a.erase(*a.rbegin()); q.push_back(x.se); x.fr-=f; if(x.fr) y.push_back(x); } for(ll i=0; i<y.size(); i++) { a.insert(y[i]); //cout<<"y="<<y[i].fr<<" "<<y[i].se<<endl; } v.push_back({f, q}); } if(a.size()>0) { cout<<-1; return 0; } cout<<v.size()<<endl; for(ll i=0; i<v.size(); i++) { cout<<v[i].fr<<" "; for(ll j=0; j<v[i].se.size(); j++) { cout<<v[i].se[j]<<" "; } cout<<endl; } return 0; } /* */

Compilation message (stderr)

nicegift.cpp: In function 'int main()':
nicegift.cpp:48:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while(a.size()>=k)
           ~~~~~~~~^~~
nicegift.cpp:68:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(ll i=0; i<y.size(); i++)
                     ~^~~~~~~~~
nicegift.cpp:84:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(ll i=0; i<v.size(); i++)
                 ~^~~~~~~~~
nicegift.cpp:87:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(ll j=0; j<v[i].se.size(); j++)
                     ~^~~~~~~~~~~~~~~
#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...