Submission #1273622

#TimeUsernameProblemLanguageResultExecution timeMemory
1273622AvianshScales (IOI15_scales)C++17
55.56 / 100
1 ms356 KiB
#include "scales.h"
#include <bits/stdc++.h>

using namespace std;

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

void orderCoins() {
    vector<int>arr1;
    set<int>s;
    s.insert(6);
    s.insert(1);
    s.insert(2);
    s.insert(3);
    s.insert(4);
    s.insert(5);
    arr1.push_back(getLightest(3,1,2));
    arr1.push_back(getHeaviest(3,1,2));
    s.erase(arr1[0]);
    s.erase(arr1[1]);
    arr1.insert(arr1.begin()+1,(*s.begin()));
    s.erase(s.begin());

    vector<int>arr2;
    arr2.push_back(getLightest(4,5,6));
    arr2.push_back(getHeaviest(4,5,6));
    s.erase(arr2[0]);
    s.erase(arr2[1]);
    arr2.insert(arr2.begin()+1,(*s.begin()));

    int ind = 0;
    for(int i = 0;i<3;i++){
        while(1){
            if(ind==arr1.size()){
                arr1.push_back(arr2[i]);
                ind++;
                break;
            }

            if(ind==arr1.size()-1){
                ind--;
            }

            int med = getMedian(arr1[ind],arr1[ind+1],arr2[i]);
            if(med==arr2[i]){
                ind++;
                arr1.insert(arr1.begin()+ind,arr2[i]);
            }
            else if(med==arr1[ind]){
                arr1.insert(arr1.begin()+ind,arr2[i]);
                ind++;
            }
            else{
                ind+=2;
                continue;
            }
            break;
        }
    }

    int ans[6];
    for(int i = 0;i<6;i++){
        ans[i]=arr1[i];
    }
    answer(ans);
}
#Verdict Execution timeMemoryGrader output
Fetching results...