Submission #726741

#TimeUsernameProblemLanguageResultExecution timeMemory
726741fdnfksdGift (IZhO18_nicegift)C++14
100 / 100
822 ms96456 KiB
#include<bits/stdc++.h> #define TASKNAME "codeforce" #define pb push_back #define pli pair<ll,ll> #define fi first #define se second #define fastio ios_base::sync_with_stdio(false); cin.tie(NULL); using namespace std; using ll=long long; const ll maxN=2e6+10; const ll inf=1e18; const ll mod=1e9+7; ll n,k,a[maxN]; void solve() { cin >> n >> k; ll sum=0; for(int i=1;i<=n;i++) { cin >> a[i]; sum+=a[i]; } // if(sum<=1e5) { priority_queue<pli> pq; for(int i=1;i<=n;i++) pq.push({a[i],i}); vector<pli> vc; vc.resize(k); vector<vector<ll>> ans; while(pq.size()>=k) { vector<ll> vd; ll mn=inf; for(int i=0;i<k;i++) { vc[i]=pq.top(); pq.pop(); mn=min(mn,vc[i].fi); } ll ers=mn; if(pq.size()>0) ers=min(ers,sum/k-pq.top().fi); sum-=k*ers; vd.pb(ers); for(int i=0;i<k;i++) { vc[i].fi-=ers; if(vc[i].fi>0) pq.push(vc[i]); vd.pb(vc[i].se); } ans.pb(vd); } if(sum==0) { cout << ans.size()<<'\n'; for(auto vec:ans) { for(auto zz:vec) cout << zz<<' '; cout << '\n'; } } else cout << -1; } } int main() { fastio //freopen(TASKNAME".INP","r",stdin); //freopen(TASKNAME".OUT","w",stdout); solve(); }

Compilation message (stderr)

nicegift.cpp: In function 'void solve()':
nicegift.cpp:30:24: warning: comparison of integer expressions of different signedness: 'std::priority_queue<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} and 'll' {aka 'long long int'} [-Wsign-compare]
   30 |         while(pq.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...