Submission #1131491

#TimeUsernameProblemLanguageResultExecution timeMemory
1131491AriadnaScales (IOI15_scales)C++20
0 / 100
0 ms320 KiB
#include <bits/stdc++.h> #include "scales.h" using namespace std; void orderCoins() { int W[6]; vector<int> first(3); vector<int> m(4); m[0] = getMedian(1, 2, 3); m[1] = getMedian(4, 5, 6); vector<int> aux; for (int i = 1; i <= 6; ++i) { if (i == m[0] || i == m[1]) continue; aux.push_back(i); } m[2] = getMedian(aux[0], aux[1], aux[2]); aux = {}; for (int i = 1; i <= 6; ++i) { if (i == m[0] || i == m[1] || i == m[2]) continue; aux.push_back(i); } m[3] = getMedian(aux[0], aux[1], aux[2]); vector<int> extrem; for (int i = 0; i < 3; ++i) { if (aux[i] == m[3]) continue; extrem.push_back(aux[i]); } int h = getHeaviest(m[0], extrem[0], extrem[1]); int l = extrem[0]+extrem[1]-h; vector<int> g(4); g[0] = getLightest(h, m[0], m[1]), g[1] = m[0]+m[1]-g[0]; int a = getMedian(g[0], g[1], m[2]); if (a == g[0]) { g[2] = g[1]; g[1] = g[0]; g[0] = m[2]; } else if (a == g[1]) { g[2] = m[2]; } else { g[2] = g[1]; g[1] = m[2]; } a = getMedian(g[2], g[1], m[3]); if (a == g[2]) { g[3] = m[3]; } else if (a == m[3]) { g[3] = g[2]; g[2] = m[3]; } else { g[3] = g[2]; g[2] = g[1]; g[1] = getMedian(h, m[3], g[0]); g[0] = g[0]+m[3]-g[1]; } W[0] = l; W[5] = h; for (int i = 1; i <= 4; ++i) W[i] = g[i-1]; answer(W); } void init(int T) { for (int i = 0; i < T; ++i) orderCoins(); }
#Verdict Execution timeMemoryGrader output
Fetching results...