Submission #928621

#TimeUsernameProblemLanguageResultExecution timeMemory
928621blacktulipZalmoxis (BOI18_zalmoxis)C++17
5 / 100
456 ms81836 KiB
#include <bits/stdc++.h> using namespace std; #define ort ((bas+son)/2) #define int long long #define endl "\n" #define pb push_back #define fi first #define se second int n,k,a[1000005]; vector<int> v[35]; int32_t main(void){ ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); cin>>n>>k; multiset<pair<int,int>> ekle; for(int i=1;i<=n;i++){ cin>>a[i]; v[a[i]].pb(i); //~ ekle.insert({a[i],i}); } //~ cout<<"**\n"; for(int i=0;i<30;i++){ sort(v[i].begin(),v[i].end()); int siz=v[i].size(); if(siz%2==0){ for(int j=siz/2;j<siz;j++)v[i+1].pb(v[i][j]); v[i].clear(); } else{ //~ cout<<i<<" ()())(()() \n"; ekle.insert({i,v[i][0]}); for(int j=siz/2;j<siz;j++)v[i+1].pb(v[i][j]); v[i].clear(); } } //~ cout<<"**\n"; while((int)ekle.size()<k){ auto it=ekle.end(); it--; int val=it->fi; int ind=it->se; ekle.erase(it); val--; ekle.insert({val,ind}); ekle.insert({val,ind}); } vector<pair<int,int>> ans; while(ekle.size()){ auto it=ekle.begin(); ans.pb({it->se,it->fi}); //~ cout<<it->se<<" ()() "<<it->fi<<endl; ekle.erase(it); } sort(ans.begin(),ans.end()); int sayac=0; int sizz=ans.size(); for(int i=1;i<=n;i++){ cout<<a[i]<<" "; while(sayac<sizz && ans[sayac].fi==i){cout<<ans[sayac].se<<" ";sayac++;} } cout<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...