#include <bits/stdc++.h>
#include "scales.h"
using namespace std;
using ll = long long;
using pii = pair<int, int>;
void init(int t) {
return;
}
void orderCoins() {
vector<int> p(6);
set<int> full;
set<int> l, r;
for (int i=1; i<=6; i++) {
full.insert(i);
if (i <= 3) {
l.insert(i);
}
else {
r.insert(i);
}
}
int lmn = getLightest(1, 2, 3);
int rmn = getLightest(4, 5, 6);
l.erase(lmn);
r.erase(rmn);
int mn = getLightest(lmn, rmn, *l.begin());
full.erase(mn);
p[0] = mn;
if (mn == lmn) {
int a=-1, b=-1;
for (auto x : l) {
if (a==-1) {
a=x;
}
else {
b=x;
}
}
mn = getLightest(rmn, a, b);
p[1] = mn;
full.erase(mn);
int md = getMedian(4, 5, 6);
if (mn == a) {
mn = getLightest(rmn, b, md);
p[2] = mn;
full.erase(mn);
}
else if (mn == rmn) {
mn = getLightest(a, b, md);
p[2] = mn;
full.erase(mn);
}
else {
mn = getLightest(rmn, a, md);
p[2] = mn;
full.erase(mn);
}
}
else if (mn == rmn) {
int a=-1, b=-1;
for (auto x : r) {
if (a==-1) {
a=x;
}
else {
b=x;
}
}
mn = getLightest(lmn, a, b);
p[1] = mn;
full.erase(mn);
int md = getMedian(1, 2, 3);
if (mn == a) {
mn = getLightest(lmn, b, md);
p[2] = mn;
full.erase(mn);
}
else if (mn == lmn) {
mn = getLightest(a, b, md);
p[2] = mn;
full.erase(mn);
}
else {
mn = getLightest(lmn, a, md);
p[2] = mn;
full.erase(mn);
}
}
int a, b, c;
a=b=c=-1;
for (auto x : full) {
if (a==-1) {
a=x;
}
else if (b==-1) {
b=x;
}
else {
c=x;
}
}
mn = getLightest(a, b, c);
p[3] = mn;
full.erase(mn);
int mx = getHeaviest(a, b, c);
full.erase(mx);
p[5] = mx;
p[4] = *full.begin();
int ans[6];
for (int i=0; i<6; i++) {
ans[i] = p[i];
}
answer(ans);
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |