Submission #1270298

#TimeUsernameProblemLanguageResultExecution timeMemory
1270298vtnooScales (IOI15_scales)C++20
0 / 100
0 ms320 KiB
#include "scales.h"
#include <bits/stdc++.h>

using namespace std;

void init(int T) {
    /* ... */
}

void orderCoins(){
    int N=6, jj=0;
    vector<bool> used(N+1, false);
    vector<int> ord(N);
    for(int i=1;i<=4;i++){
        vector<int> to_compare;
        for(int j=1;j<=N;j++){
            if(!used[j])to_compare.push_back(j);
        }
        vector<int> go;
        int mn=to_compare[0];
        for(int j=1;j<(int)to_compare.size();j++){
            if((int)go.size()==2)go.clear();
            go.push_back(to_compare[j]);
            if(go.size()==2)
                mn=getLightest(mn, go[0], go[1]);
        }
        if(!go.empty()&&to_compare.size()>1){
            for(int j=0;j<(int)to_compare.size();j++){
                if(to_compare[j]!=mn&&to_compare[j]!=go[0]){
                    mn=getLightest(to_compare[j], mn, go[0]);
                    break;
                }
            }
        }
        ord[jj++]=mn;
        used[mn]=true;
    }
    int last=ord[jj-1];
    vector<int> c0;
    for(int i=1;i<=N;i++){
        if(!used[i]){
            c0.push_back(i);
        }
    }
    ord[jj++]=getMedian(last, c0[0], c0[1]);
    ord[jj]=(ord[jj-1]==c0[0]?c0[1]:c0[0]);
    answer(ord.data());
}
#Verdict Execution timeMemoryGrader output
Fetching results...