#include <bits/stdc++.h>
#include "scales.h"
using namespace std;
void init(int T){
}
void orderCoins(){
int N=6, jj=0;
vector<bool> used(N+1, false);
vector<int> ord(N);
for(int i=1;i<=4;i++){
/* cout<<"=============="<<endl;
cout<<i<<endl; */
vector<int> to_compare;
for(int j=1;j<=N;j++){
if(!used[j])to_compare.push_back(j);
}
vector<int> go;
int mn=to_compare[0];
for(int j=1;j<(int)to_compare.size();j++){
if((int)go.size()==2)go.clear();
go.push_back(to_compare[j]);
if(go.size()==2)
mn=getLightest(mn, go[0], go[1]);
}
if(!go.empty()&&to_compare.size()>1){
for(int j=0;j<(int)to_compare.size();j++){
if(to_compare[j]!=mn&&mn!=go[0]&&to_compare[j]!=go[0]){/*
cout<<"LAST "<<to_compare[j]<<" "<<mn<<" "<<go[0]<<endl; */
mn=getLightest(to_compare[j], mn, go[0]);
break;
}
}
}
ord[jj++]=mn;
used[mn]=true;
}
int last=ord[jj-1];
vector<int> c0;
for(int i=1;i<=N;i++){
if(!used[i]){
c0.push_back(i);
}
}
ord[jj++]=getMedian(last, c0[0], c0[1]);
ord[jj]=(ord[jj-1]==c0[0]?c0[1]:c0[0]);
answer(ord.data());
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |