#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 time | Memory | Grader output |
---|
Fetching results... |