#include "scales.h"
#include<bits/stdc++.h>
#define pb push_back
using namespace std;
void init(int T) {
}
void orderCoins()
{
int W[] = {1, 2, 3, 4, 5, 6};
int median1 = getMedian(1, 2, 3);
int median2 = getMedian(4, 5, 6);
int lightest1 = getLightest(1, 2, 3);
int lightest2 = getLightest(4, 5, 6);
int sum1 = 6, sum2 = 15;
vector < int > fh, sh;
fh.pb(lightest1);
fh.pb(median1);
fh.pb(sum1 - lightest1 - median1);
sh.pb(lightest2);
sh.pb(median2);
sh.pb(sum2 - lightest2 - median2);
vector < int > g;
int last_put = 0;
for (int i = 0; i < 5; ++ i)
{
if(!fh.size())
{
while(sh.size())
{
g.pb(sh.back());
sh.pop_back();
}
break;
}
if(!sh.size())
{
while(fh.size())
{
g.pb(fh.back());
fh.pop_back();
}
break;
}
if(fh.size() == 1 && sh.size() == 1)
{
int sum = fh[0] + sh[0];
int lightest = getLightest(fh[0], sh[0], last_put);
g.pb(sum - lightest);
g.pb(lightest);
break;
}
int fsz = fh.size();
int ssz = sh.size();
if(fh.size() > sh.size())
{
int heaviest = getHeaviest(fh[fsz-1], fh[fsz-2], sh[ssz-1]);
if(heaviest == fh[fsz - 1])fh.pop_back();
else sh.pop_back();
g.pb(heaviest);
last_put = heaviest;
}
else
{
int heaviest = getHeaviest(fh[fsz-1], sh[ssz-1], sh[ssz - 2]);
if(heaviest == fh[fsz - 1])fh.pop_back();
else sh.pop_back();
g.pb(heaviest);
last_put = heaviest;
}
}
reverse(g.begin(), g.end());
for (int i = 0; i < 6; ++ i)
{
W[i] = g[i];
}
answer(W);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |