#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
#include "scales.h"
// #include "grader.cpp"
void init(int T) {
/* ... */
}
void orderCoins() {
int ans[] = {1, 2, 3, 4, 5, 6};
int mn = getLightest(1,2,3);
int mx = getHeaviest(1,2,3);
vector<int> a{mn,6-mn-mx,mx};
mn = getLightest(4,5,6);
mx = getHeaviest(4,5,6);
vector<int> b{mn,15-mn-mx,mx};
int x = getMedian(a[0],a[1],b[0]);
if(x == a[0]) ans[0] = b[0] , b.erase(b.begin());
else ans[0] = a[0] , a.erase(a.begin());
x = getMedian(a[0],a[1],b[0]);
if(x == a[0]) ans[1] = b[0] , b.erase(b.begin());
else ans[1] = a[0] , a.erase(a.begin());
if((int)a.size() > 1){
x = getMedian(a[0],a[1],b[0]);
if(x == a[0]) ans[2] = b[0] , b.erase(b.begin());
else ans[2] = a[0] , a.erase(a.begin());
}
else {
x = getMedian(b[0],b[1],a[0]);
if(x == b[0]) ans[2] = a[0] , a.erase(a.begin());
else ans[2] = b[0] , b.erase(b.begin());
}
vector<int> rem;
for(auto i : a) rem.push_back(i);
for(auto i : b) rem.push_back(i);
mn = getLightest(rem[0],rem[1],rem[2]);
mx = getHeaviest(rem[0],rem[1],rem[2]);
ans[3] = mn;
ans[4] = rem[0] + rem[1] + rem[2] - mn - mx;
ans[5] = mx;
answer(ans);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |