Submission #1207524

#TimeUsernameProblemLanguageResultExecution timeMemory
1207524kilikumaScales (IOI15_scales)C++20
0 / 100
0 ms320 KiB
#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 timeMemoryGrader output
Fetching results...