Submission #767660

#TimeUsernameProblemLanguageResultExecution timeMemory
767660TrunktyGift (IZhO18_nicegift)C++14
49 / 100
2085 ms133756 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define int ll int n,k,tot; int arr[1000005]; set<pair<int,int>> s; vector<vector<int>> ans; signed main(){ ios::sync_with_stdio(false); cin.tie(NULL); cin >> n >> k; for(int i=1;i<=n;i++){ cin >> arr[i]; s.insert({arr[i],i}); tot += arr[i]; } if(tot%k!=0 or tot/k<(*prev(s.end())).first){ cout << -1 << "\n"; return 0; } int lef=tot/k; s.insert({0,0}); while((*prev(s.end())).first>0){ vector<pair<int,int>> v; for(int i=1;i<=k;i++){ v.push_back(*prev(s.end())); s.erase(v.back()); } int torem = min(v.back().first,lef-(*prev(s.end())).first); lef -= torem; vector<int> ps={torem}; for(pair<int,int> i:v){ ps.push_back(i.second); s.insert({i.first-torem,i.second}); } ans.push_back(ps); } cout << ans.size() << "\n"; for(vector<int> i:ans){ for(int j:i){ cout << j << " "; } cout << "\n"; } return 0; }
#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...