Submission #228040

#TimeUsernameProblemLanguageResultExecution timeMemory
228040mohamedsobhi777Zalmoxis (BOI18_zalmoxis)C++14
0 / 100
766 ms18484 KiB
#include<bits/stdc++.h>

using namespace std ;

const int N = 1e5 + 7 ; 

int n , k ;
priority_queue<pair<int, int > > mu ; 

vector<pair<int , int> > arr ; 

int main(){
    ios_base::sync_with_stdio(0) ; 
    cin.tie(0) ; 
    //freopen("in.in" , "r" , stdin) ; 
    cin>>n>>k ; 

    for(int i = 0 ; i < n ; i++){
        int t ; 
        cin>>t ; 
        mu.push({ -t , i }) ; 
        arr.push_back({t , i }) ; 
    }
    while(mu .size() > 1){
        pair<int , int > t1 = mu.top() ; mu.pop() ; 
        pair<int , int > t2 = mu.top() ; mu.pop() ; 
        if(t1.first == t2.first ){
            mu.push({ t1.first -1 , t1.second -2 });
            continue ; 
        }
        else{
            mu.push(t2) ;
            mu.push(t1) ;
            mu.push(t1) ;  
            arr.push_back( t1 ); 
            k-- ; 
        }
    }
    sort(arr.begin() , arr.end() , [&] (pair<int , int > p1 , pair<int , int > p2) {
        return p1.second < p2.second ; 
    }) ; 
    int tp = -mu.top().first;
    for(int i = tp + k -1 ; i >= tp ; i --){
        cout<<i<<" ";
    } 
    for(auto u : arr){
        cout<<abs(u.first) <<" " ; 
    }

    return 0 ; 
} 
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...