#include "scales.h"
#include <bits/stdc++.h>
int T;
void init(int t) {
T = t;
}
int findLightestOfFour(int a, int b, int c, int d) {
int l1 = getLightest(a, b, c);
if (l1 == a) return getLightest(a, d, d); // a vs d
if (l1 == b) return getLightest(b, d, d); // b vs d
return getLightest(c, d, d); // c vs d
}
void orderCoins() {
int coins[6] = {1,2,3,4,5,6};
int sorted[6];
int group1 = findLightestOfFour(coins[0], coins[1], coins[2], coins[3]);
int group2 = getLightest(coins[4], coins[5], coins[5]);
int lightest = getLightest(group1, group2, group2);
sorted[0] = lightest;
int remaining[5], idx = 0;
for (int i = 0; i < 6; ++i)
if (coins[i] != lightest) remaining[idx++] = coins[i];
sorted[1] = remaining[0];
sorted[2] = remaining[1];
int m = getMedian(sorted[0], sorted[1], remaining[2]);
if (m == sorted[0]) {
sorted[2] = sorted[1];
sorted[1] = sorted[0];
sorted[0] = remaining[2];
} else if (m == sorted[1]) {
sorted[2] = remaining[2];
} else {
sorted[2] = sorted[1];
sorted[1] = remaining[2];
}
for (int i = 3; i < 5; ++i) {
int x = remaining[i];
if (getLightest(x, sorted[0], sorted[1]) == x) {
for (int j = 5; j > 0; --j) sorted[j] = sorted[j - 1];
sorted[0] = x;
} else if (getLightest(x, sorted[4], sorted[3]) == x) {
sorted[5] = x;
} else {
for (int j = 4; j > 0; --j) {
if (getLightest(x, sorted[j], sorted[j - 1]) == x) {
for (int k = 5; k > j; --k)
sorted[k] = sorted[k - 1];
sorted[j] = x;
break;
}
}
}
}
answer(sorted);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |