#include "scales.h"
#include <bits/stdc++.h>
using namespace std;
array<int, 5> vec[727]={{1,1,2,3},{3,4,5,6},{4,2,3,4,5},{2,2,5,6},{3,1,4,5},{3,3,4,6},{-1},{3,1,3,6},{-1},{3,3,4,6},{-1},{-1},{3,2,3,4},{3,1,4,6},{-1},{3,1,4,6},{-1},{3,1,3,6},{-1},{-1},{1,2,3,4},{3,3,4,6},{-1},{3,1,2,5},{-1},{3,1,4,5},{-1},{-1},{-1},{2,3,5,6},{3,1,4,5},{3,2,4,6},{-1},{3,1,2,6},{-1},{3,2,4,6},{-1},{-1},{3,2,3,4},{3,1,4,6},{-1},{3,1,4,6},{-1},{3,1,2,6},{-1},{-1},{1,2,3,4},{3,1,2,5},{-1},{3,2,4,6},{-1},{3,1,4,5},{-1},{-1},{-1},{4,1,2,3,5},{2,2,3,4},{3,1,4,6},{-1},{3,1,4,6},{-1},{1,2,3,4},{-1},{-1},{3,1,2,6},{1,2,3,4},{-1},{1,2,3,5},{-1},{3,2,3,6},{-1},{-1},{3,1,2,6},{1,2,3,4},{-1},{1,3,5,6},{-1},{3,2,3,6},{-1},{-1},{-1},{-1},{4,2,3,4,6},{1,2,5,6},{2,2,3,4},{3,1,3,4},{-1},{3,1,2,4},{-1},{3,2,3,5},{-1},{-1},{3,2,3,5},{3,1,4,5},{-1},{3,1,4,5},{-1},{3,1,3,4},{-1},{-1},{3,1,5,6},{3,3,4,5},{-1},{3,1,3,4},{-1},{3,3,4,5},{-1},{-1},{-1},{1,3,5,6},{2,2,3,4},{3,1,3,4},{-1},{3,1,2,4},{-1},{3,2,3,5},{-1},{-1},{3,2,3,5},{3,1,4,5},{-1},{3,1,4,5},{-1},{3,1,2,4},{-1},{-1},{3,1,5,6},{3,2,4,5},{-1},{3,1,2,4},{-1},{3,2,4,5},{-1},{-1},{-1},{1,2,3,4},{3,1,5,6},{3,2,3,5},{-1},{1,3,4,5},{-1},{3,2,3,5},{-1},{-1},{3,1,5,6},{3,2,3,5},{-1},{1,2,4,5},{-1},{3,2,3,5},{-1},{-1},{4,1,2,3,4},{2,1,2,3},{-1},{3,1,5,6},{-1},{3,1,5,6},{-1},{-1},{-1},{-1},{4,2,3,4,5},{1,2,5,6},{2,2,3,4},{3,1,3,4},{-1},{3,1,2,4},{-1},{3,2,3,6},{-1},{-1},{3,1,5,6},{3,3,4,6},{-1},{3,3,4,6},{-1},{3,1,3,4},{-1},{-1},{3,2,3,6},{3,1,4,6},{-1},{3,1,4,6},{-1},{3,1,3,4},{-1},{-1},{-1},{1,3,5,6},{2,2,3,4},{3,1,3,4},{-1},{3,1,2,4},{-1},{3,2,3,6},{-1},{-1},{3,1,5,6},{3,2,4,6},{-1},{3,2,4,6},{-1},{3,1,2,4},{-1},{-1},{3,2,3,6},{3,1,4,6},{-1},{3,1,4,6},{-1},{3,1,2,4},{-1},{-1},{-1},{1,2,3,4},{3,1,5,6},{3,2,3,6},{-1},{3,2,3,6},{-1},{1,3,4,5},{-1},{-1},{3,1,5,6},{3,2,3,6},{-1},{3,2,3,6},{-1},{1,2,4,5},{-1},{-1},{4,1,2,3,4},{2,1,2,3},{-1},{3,1,5,6},{-1},{3,1,5,6},{-1},{-1},{-1},{-1},{-1},{3,4,5,6},{4,1,3,4,5},{2,1,5,6},{3,2,4,5},{3,3,4,6},{-1},{3,2,3,6},{-1},{3,3,4,6},{-1},{-1},{3,1,3,4},{3,2,4,6},{-1},{3,2,4,6},{-1},{3,2,3,6},{-1},{-1},{1,1,3,4},{3,3,4,6},{-1},{3,1,2,5},{-1},{3,2,4,5},{-1},{-1},{-1},{2,3,5,6},{3,2,4,5},{3,1,4,6},{-1},{3,1,2,6},{-1},{3,1,4,6},{-1},{-1},{3,1,3,4},{3,2,4,6},{-1},{3,2,4,6},{-1},{3,1,2,6},{-1},{-1},{1,1,3,4},{3,1,2,5},{-1},{3,1,4,6},{-1},{3,2,4,5},{-1},{-1},{-1},{4,1,2,3,5},{3,1,2,6},{1,1,3,5},{-1},{1,1,3,4},{-1},{3,1,3,6},{-1},{-1},{2,1,3,4},{3,2,4,6},{-1},{3,2,4,6},{-1},{1,1,3,4},{-1},{-1},{3,1,2,6},{1,3,5,6},{-1},{1,1,3,4},{-1},{3,1,3,6},{-1},{-1},{-1},{-1},{4,1,3,4,6},{1,1,5,6},{2,1,3,4},{3,2,3,4},{-1},{3,1,2,4},{-1},{3,1,3,5},{-1},{-1},{3,1,3,5},{3,2,4,5},{-1},{3,2,4,5},{-1},{3,2,3,4},{-1},{-1},{3,2,5,6},{3,3,4,5},{-1},{3,2,3,4},{-1},{3,3,4,5},{-1},{-1},{-1},{1,3,5,6},{2,1,3,4},{3,2,3,4},{-1},{3,1,2,4},{-1},{3,1,3,5},{-1},{-1},{3,1,3,5},{3,2,4,5},{-1},{3,2,4,5},{-1},{3,1,2,4},{-1},{-1},{3,2,5,6},{3,1,4,5},{-1},{3,1,2,4},{-1},{3,1,4,5},{-1},{-1},{-1},{1,1,3,4},{3,1,3,5},{3,2,5,6},{-1},{3,1,2,6},{-1},{3,1,2,6},{-1},{-1},{3,1,3,5},{3,1,2,6},{-1},{3,2,5,6},{-1},{3,2,3,6},{-1},{-1},{4,1,2,3,4},{3,2,5,6},{-1},{2,1,2,3},{-1},{3,2,5,6},{-1},{-1},{-1},{-1},{4,1,3,4,5},{1,1,5,6},{2,1,3,4},{3,2,3,4},{-1},{3,1,2,4},{-1},{3,1,3,6},{-1},{-1},{3,2,5,6},{3,3,4,6},{-1},{3,3,4,6},{-1},{3,2,3,4},{-1},{-1},{3,1,3,6},{3,2,4,6},{-1},{3,2,4,6},{-1},{3,2,3,4},{-1},{-1},{-1},{1,3,5,6},{2,1,3,4},{3,2,3,4},{-1},{3,1,2,4},{-1},{3,1,3,6},{-1},{-1},{3,2,5,6},{3,1,4,6},{-1},{3,1,4,6},{-1},{3,1,2,4},{-1},{-1},{3,1,3,6},{3,2,4,6},{-1},{3,2,4,6},{-1},{3,1,2,4},{-1},{-1},{-1},{1,1,3,4},{3,1,3,6},{3,2,5,6},{-1},{3,1,2,5},{-1},{3,1,2,5},{-1},{-1},{3,1,3,6},{3,1,2,5},{-1},{3,2,5,6},{-1},{3,2,3,5},{-1},{-1},{4,1,2,3,4},{3,2,5,6},{-1},{2,1,2,3},{-1},{3,2,5,6},{-1},{-1},{-1},{-1},{-1},{3,4,5,6},{4,1,2,4,5},{2,1,5,6},{3,3,4,5},{3,2,4,6},{-1},{3,2,3,6},{-1},{3,2,4,6},{-1},{-1},{3,1,2,4},{3,3,4,6},{-1},{3,3,4,6},{-1},{3,2,3,6},{-1},{-1},{1,1,2,4},{3,2,4,6},{-1},{3,1,3,5},{-1},{3,3,4,5},{-1},{-1},{-1},{2,2,5,6},{3,3,4,5},{3,1,4,6},{-1},{3,1,3,6},{-1},{3,1,4,6},{-1},{-1},{3,1,2,4},{3,3,4,6},{-1},{3,3,4,6},{-1},{3,1,3,6},{-1},{-1},{1,1,2,4},{3,1,3,5},{-1},{3,1,4,6},{-1},{3,3,4,5},{-1},{-1},{-1},{4,1,2,3,5},{3,1,3,6},{1,1,2,5},{-1},{1,1,2,4},{-1},{3,1,2,6},{-1},{-1},{3,1,3,6},{1,2,5,6},{-1},{1,1,2,4},{-1},{3,1,2,6},{-1},{-1},{2,1,2,4},{3,3,4,6},{-1},{3,3,4,6},{-1},{1,1,2,4},{-1},{-1},{-1},{-1},{4,1,2,4,6},{1,1,5,6},{2,1,2,4},{3,2,3,4},{-1},{3,1,3,4},{-1},{3,1,2,5},{-1},{-1},{3,1,2,5},{3,3,4,5},{-1},{3,3,4,5},{-1},{3,2,3,4},{-1},{-1},{3,3,5,6},{3,2,4,5},{-1},{3,2,3,4},{-1},{3,2,4,5},{-1},{-1},{-1},{1,2,5,6},{2,1,2,4},{3,2,3,4},{-1},{3,1,3,4},{-1},{3,1,2,5},{-1},{-1},{3,1,2,5},{3,3,4,5},{-1},{3,3,4,5},{-1},{3,1,3,4},{-1},{-1},{3,3,5,6},{3,1,4,5},{-1},{3,1,3,4},{-1},{3,1,4,5},{-1},{-1},{-1},{1,1,2,4},{3,1,2,5},{3,3,5,6},{-1},{3,1,3,6},{-1},{3,1,3,6},{-1},{-1},{3,1,2,5},{3,1,3,6},{-1},{3,3,5,6},{-1},{3,2,3,6},{-1},{-1},{4,1,2,3,4},{3,3,5,6},{-1},{3,3,5,6},{-1},{2,1,2,3},{-1},{-1},{-1},{-1},{4,1,2,4,5},{1,1,5,6},{2,1,2,4},{3,2,3,4},{-1},{3,1,3,4},{-1},{3,1,2,6},{-1},{-1},{3,3,5,6},{3,2,4,6},{-1},{3,2,4,6},{-1},{3,2,3,4},{-1},{-1},{3,1,2,6},{3,3,4,6},{-1},{3,3,4,6},{-1},{3,2,3,4},{-1},{-1},{-1},{1,2,5,6},{2,1,2,4},{3,2,3,4},{-1},{3,1,3,4},{-1},{3,1,2,6},{-1},{-1},{3,3,5,6},{3,1,4,6},{-1},{3,1,4,6},{-1},{3,1,3,4},{-1},{-1},{3,1,2,6},{3,3,4,6},{-1},{3,3,4,6},{-1},{3,1,3,4},{-1},{-1},{-1},{1,1,2,4},{3,1,2,6},{3,3,5,6},{-1},{3,1,3,5},{-1},{3,1,3,5},{-1},{-1},{3,1,2,6},{3,1,3,5},{-1},{3,3,5,6},{-1},{3,2,3,5},{-1},{-1},{4,1,2,3,4},{3,3,5,6},{-1},{3,3,5,6},{-1},{2,1,2,3},{-1},{-1},{-1},{-1},{-1}};
void init(int T) {
}
void orderCoins() {
vector<array<int, 6>> qry;
int p=0;
for(int i=0; i<6; i++) {
int x=vec[p][1], y=vec[p][2], z=vec[p][3], w=vec[p][4];
int t=0;
if(vec[p][0]==1) t=getHeaviest(x, y, z);
else if(vec[p][0]==2) t=getLightest(x, y, z);
else if(vec[p][0]==3) t=getMedian(x, y, z);
else t=getNextLightest(x, y, z, w);
qry.push_back({vec[p][0], x, y, z, w, t});
p++;
if(t==y || t==z) {
int sum=0;
for(int j=p; j<727; j++) {
if(vec[j][0]<0) sum--;
else sum++;
if(sum==0) {
p=j+1; break;
}
}
}
if(t==z) {
int sum=0;
for(int j=p; j<727; j++) {
if(vec[j][0]<0) sum--;
else sum++;
if(sum==0) {
p=j+1; break;
}
}
}
}
vector<int> vec;
for(int i=1; i<=6; i++) vec.push_back(i);
do {
bool flag=true;
for(auto [o, x, y, z, w, t]:qry) {
if(o==1) {
if(max({vec[x-1], vec[y-1], vec[z-1]})!=vec[t-1]) {
flag=false; break;
}
}
else if(o==2) {
if(min({vec[x-1], vec[y-1], vec[z-1]})!=vec[t-1]) {
flag=false; break;
}
}
else if(o==3) {
if(vec[x-1]+vec[y-1]+vec[z-1]-max({vec[x-1], vec[y-1], vec[z-1]})-min({vec[x-1], vec[y-1], vec[z-1]})!=vec[t-1]) {
flag=false; break;
}
}
else {
if(max({vec[x-1], vec[y-1], vec[z-1]})<vec[w-1]) {
if(vec[x-1]==min({vec[x-1], vec[y-1], vec[z-1]})) {
if(x!=t) {
flag=false; break;
}
}
if(vec[y-1]==min({vec[x-1], vec[y-1], vec[z-1]})) {
if(y!=t) {
flag=false; break;
}
}
if(vec[z-1]==min({vec[x-1], vec[y-1], vec[z-1]})) {
if(z!=t) {
flag=false; break;
}
}
}
else if(vec[x-1]>vec[w-1] && (vec[y-1]<vec[w-1] || vec[y-1]>vec[x-1]) && (vec[z-1]<vec[w-1] || vec[z-1]>vec[x-1])) {
if(x!=t) {
flag=false; break;
}
}
else if(vec[y-1]>vec[w-1] && (vec[x-1]<vec[w-1] || vec[x-1]>vec[y-1]) && (vec[z-1]<vec[w-1] || vec[z-1]>vec[y-1])) {
if(y!=t) {
flag=false; break;
}
}
else if(vec[z-1]>vec[w-1] && (vec[x-1]<vec[w-1] || vec[x-1]>vec[z-1]) && (vec[y-1]<vec[w-1] || vec[y-1]>vec[z-1])) {
if(z!=t) {
flag=false; break;
}
}
}
}
if(!flag) continue;
int ans[6];
for(int i=0; i<6; i++) ans[vec[i]-1]=i+1;
answer(ans);
}while(next_permutation(vec.begin(), vec.end()));
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |