Submission #1137067

#TimeUsernameProblemLanguageResultExecution timeMemory
1137067alterioScales (IOI15_scales)C++20
45.45 / 100
0 ms328 KiB
#include "scales.h"
#include <bits/stdc++.h>

using namespace std;

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

void orderCoins() {
    /* ... */
    int n = 6;
    bool used[n + 1];
    int W[n];
    memset(used, 0, sizeof(used));
    int ans1 = getLightest(1, 2, 3), ans2 = getLightest(4, 5, 6);
    int other = 1;
    if (ans1 == other) other = 2;
    W[0] = getLightest(ans1, other, ans2);
    used[W[0]] = 1;

    auto left = [&]() {
        vector<int> v;
        for (int i = 1; i <= n; i++) {
            if (!used[i]) v.push_back(i);
        }
        return v;
    };

    vector<int> v = left();
    ans1 = getLightest(v[0], v[1], v[2]);
    W[1] = getLightest(ans1, v[3], v[4]);
    used[W[1]] = 1;
    v = left();
    ans1 = getLightest(v[0], v[1], v[2]);
    other = v[0];
    if (ans1 == other) other = v[1];
    W[2] = getLightest(ans1, other, v[3]);
    used[W[2]] = 1;
    v = left();
    W[3] = getLightest(v[0], v[1], v[2]);
    W[4] = getMedian(v[0], v[1], v[2]);
    int last = v[0];
    if (W[3] == last || W[4] == last) last = v[1];
    if (W[3] == last || W[4] == last) last = v[2];
    W[5] = last;
    answer(W);
}
#Verdict Execution timeMemoryGrader output
Fetching results...