Submission #1222616

#TimeUsernameProblemLanguageResultExecution timeMemory
1222616HossamHero7Scales (IOI15_scales)C++20
45.45 / 100
0 ms328 KiB
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
#include "scales.h"
// #include "grader.cpp"
void init(int T) {
    /* ... */
}

void orderCoins() {
    int ans[] = {1, 2, 3, 4, 5, 6};
    int mn = getLightest(1,2,3);
    int mx = getHeaviest(1,2,3);
    vector<int> a{mn,6-mn-mx,mx};
    mn = getLightest(4,5,6);
    mx = getHeaviest(4,5,6);
    vector<int> b{mn,15-mn-mx,mx};
    int x = getMedian(a[0],a[1],b[0]);
    if(x == a[0]) ans[0] = b[0] , b.erase(b.begin());
    else ans[0] = a[0] , a.erase(a.begin());
    x = getMedian(a[0],a[1],b[0]);
    if(x == a[0]) ans[1] = b[0] , b.erase(b.begin());
    else ans[1] = a[0] , a.erase(a.begin());
    if((int)a.size() > 1){
        x = getMedian(a[0],a[1],b[0]);
        if(x == a[0]) ans[2] = b[0] , b.erase(b.begin());
        else ans[2] = a[0] , a.erase(a.begin());
    }
    else {
        x = getMedian(b[0],b[1],a[0]);
        if(x == b[0]) ans[2] = a[0] , a.erase(a.begin());
        else ans[2] = b[0] , b.erase(b.begin());
    }
    vector<int> rem;
    for(auto i : a) rem.push_back(i);
    for(auto i : b) rem.push_back(i);
    mn = getLightest(rem[0],rem[1],rem[2]);
    mx = getHeaviest(rem[0],rem[1],rem[2]);
    ans[3] = mn;
    ans[4] = rem[0] + rem[1] + rem[2] - mn - mx;
    ans[5] = mx;
    answer(ans);
}
#Verdict Execution timeMemoryGrader output
Fetching results...