#include <bits/stdc++.h>
#include "scales.h"
using namespace std;
#define pb push_back
void init(int T) {
/* ... */
}
void orderCoins() {
/* ... */
int W[] = {1, 2, 3, 4, 5, 6};
int a[3],b[3];
a[0]=getLightest(1,2,3);
a[1]=getMedian(1,2,3);
if(a[0]+a[1]==3)a[2]=3;
if(a[0]+a[1]==4)a[2]=2;
if(a[0]+a[1]==5)a[2]=1;
b[0]=getLightest(4,5,6);
b[1]=getMedian(4,5,6);
if(b[0]+b[1]==9)b[2]=6;
if(b[0]+b[1]==10)b[2]=5;
if(b[0]+b[1]==11)b[2]=4;
int l1=2,l2=2;
for(int i=5;i>=0;i--){
if(l1<0){
while(l2>=0)W[i--]=b[l2--];
break;
}
if(l2<0){
while(l1>=0)W[i--]=a[l1--];
break;
}
if(l2>0 && l1==0){
swap(a,b);
swap(l1,l2);
}
if(l1>0){
int x=getMedian(a[l1],a[l1-1],b[l2]);
if(x==a[l1-1]){
W[i]=a[l1];
i--; l1--;
W[i]=a[l1];
l1--;
continue;
}
if(x==b[l2]){
W[i]=a[l1];
l1--; i--;
W[i]=b[l2];
l2--; continue;
}
W[i]=b[l2];
l2--;
continue;
}
int x=getMedian(a[l1],b[l2],W[i+1]);
if(x==a[l1]){
W[i]=a[l1];
W[i-1]=b[l2];
break;
}
W[i]=b[l2];
W[i-1]=a[l1];
break;
}
// for(int i=0;i<6;i++)cout<<W[i]<<' ';
// cout<<'s'<<endl;
answer(W);
}
//3 4 6 2 1 5
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |