#include "scales.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define fi first
#define se second
#define pb push_back
#define vi vector<int>
#define vl vector<ll>
#define pi pair<int, int>
#define pl pair<ll,ll>
#define all(x) (x).begin(),(x).end()
void init(int t) {}
void orderCoins() {
int mn1=getLightest(1,2,3);
int mn2=getLightest(4,5,6);
int ans[6];
ans[0]=getLightest(mn1,mn2,1+(mn1==1)+(mn2==1)+(mn1==2)+(mn2==2));
if (ans[0]==mn1) {
ans[1]=getLightest(mn2,(mn1==1?2:1),(mn1==3?2:3));
}
else {
ans[1]=getLightest(mn1,(mn2==4?5:4),(mn2==6?5:6));
}
if ((mn1==ans[0] && mn2==ans[1]) || (mn2==ans[0] && mn1==ans[1])) {
vi rem={1,2,3,4,5,6};
rem.erase(find(all(rem),ans[0]));
rem.erase(find(all(rem),ans[1]));
int mn3=getLightest(rem[0],rem[1],rem[2]);
ans[2]=getMedian(mn1,mn3,rem[3]);
if (ans[2]==rem[3]) {
ans[3]=mn3;
ans[4]=getMedian(rem[0],rem[1],rem[2]);
ans[5]=21-accumulate(ans,ans+6,0);
answer(ans);
return;
}
}
else if (mn1==ans[0]) {
ans[2]=getMedian(mn1,mn2,6-ans[0]-ans[1]);
}
else {
ans[2]=getMedian(mn1,mn2,15-ans[0]-ans[1]);
}
vi rem={1,2,3,4,5,6};
rem.erase(find(all(rem),ans[0]));
rem.erase(find(all(rem),ans[1]));
rem.erase(find(all(rem),ans[2]));
ans[3]=getLightest(rem[0],rem[1],rem[2]);
ans[4]=getMedian(rem[0],rem[1],rem[2]);
ans[5]=21-accumulate(ans,ans+6,0);
answer(ans);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |