/**
* بسم الله الرحمن الرحيم *
﴾ رَبِّ اشْرَحْ لِي صَدْرِي * وَيَسِّرْ لِي أَمْرِي * وَاحْلُلْ عُقْدَةً مِّن لِّسَانِي * يَفْقَهُوا قَوْلِي ﴿
*/
/// author : "ASGA"
#pragma GCC optimize("Ofast")
#include<bits/stdc++.h>
using namespace std;
using ll=long long;
#include "scales.h"
void answer(int w[]);
int getHeaviest(int a,int b,int c);
int getLightest(int a,int b,int c);
int getMedian(int a,int b,int c);
int getNextLightest(int a,int b,int c,int d);
void init(int T){return;}
void orderCoins(){
int A[]={1,2,3,4,5,6};
{
auto s=A,e=A+4;
int a=*s,b=*(s+1),c=*(s+2),d=*(s+3);
vector<int>o;
int q=getLightest(a,b,c);
int w=getMedian(a,b,c);
o.push_back(q);
o.push_back(w);
if(q==a)o.push_back(w==b?c:b);
if(q==b)o.push_back(w==a?c:a);
if(q==c)o.push_back(w==b?a:b);
a=o[0],b=o[1],c=o[2];
int ee=getNextLightest(a,b,c,d);
if(ee==a){
int r=getHeaviest(a,b,d);
if(r==d)o.push_back(d);
else o.insert(o.begin(),d);
}
else{
int i=(ee==b?1:2);
o.insert(o.begin()+i,d);
}
int i=0;
while(s!=e)(*s++)=o[i++];
}
{
auto s=A+2,e=A+6;
int a=*s,b=*(s+1),c=*(s+2),d=*(s+3);
vector<int>o;
int q=getMedian(a,b,c);
if(q==a)o={c,a,b};
if(q==b)o={a,b,c};
if(q==c)o={a,c,b};
a=o[0],b=o[1],c=o[2];
int ee=getNextLightest(a,b,c,d);
if(ee==a){
int r=getHeaviest(a,b,d);
if(r==d)o.push_back(d);
else o.insert(o.begin(),d);
}
else{
int i=(ee==b?1:2);
o.insert(o.begin()+i,d);
}
int i=0;
while(s!=e)(*s++)=o[i++];
}
{
auto s=A,e=A+4;
int a=*s,b=*(s+1),c=*(s+2),d=*(s+3);
vector<int>o;
int q=getMedian(a,b,c);
if(q==a){
// o={c,a,b};
q=getMedian(a,b,d);
if(q==a)o={c,d,a,b};
if(q==b)o={c,a,b,d};
if(q==d)o={c,a,d,b};
}
else if(q==b){
o={a,b,c,d};
}
else if(q==c){
// o={a,c,b};
q=getHeaviest(c,b,d);
if(q==d)o={a,c,b,d};
else{
assert(q==b);
o={a,c,d,b};
}
}
int i=0;
while(s!=e)(*s++)=o[i++];
}
answer(A);
return;
}
//signed main(){
// ios_base::sync_with_stdio(0);cin.tie(0);
//
//
// ;
//
//
// return 0;
//}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |