# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1202236 | ASGA_RedSea | 저울 (IOI15_scales) | C++20 | 0 ms | 0 KiB |
/**
* بسم الله الرحمن الرحيم *
﴾ رَبِّ اشْرَحْ لِي صَدْرِي * وَيَسِّرْ لِي أَمْرِي * وَاحْلُلْ عُقْدَةً مِّن لِّسَانِي * يَفْقَهُوا قَوْلِي ﴿
*/
/// author : "ASGA"
#pragma GCC optimize("Ofast")
#include<bits/stdc++.h>
using namespace std;
using ll=long long;
void answer(vector<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 s(auto s,auto e){
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++];
}
void orderCoins(){
vector<int>a={1,2,3,4,5,6};
s(a.begin(),a.begin()+4);
s(a.begin()+2,a.end());
s(a.begin(),a.begin()+4);
answer(a);
return;
}
//signed main(){
// ios_base::sync_with_stdio(0);cin.tie(0);
//
//
// ;
//
//
// return 0;
//}