| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1367063 | FaresSTH | 저울 (IOI15_scales) | C++20 | 0 ms | 0 KiB |
#include"bits/stdc++.h"
#include"scales.h"
using namespace std;
// #define int long long
#define S second
#define F first
void init(int t){}
vector<int>rec(vector<int>a){
int n=a.size();
if(n==3){
auto x=getLightest(a[0],a[1],a[2]);
auto y=getMedian(a[0],a[1],a[2]);
return {x,y,a[0]+a[1]+a[2]-x-y};
};
int mn=getLightest(a[0],a[1],a[2]);
vector<int>b,res;
for(int i=3;i<n;i+=2){
if(i+1<n)mn=getLightest(mn,a[i],a[i+1]);
else if(mn==a[0])mn=getLightest(mn,a[i],a[1]);
else mn=getLightest(mn,a[i],a[0]);
}
res.push_back(mn);
for(int i=0;i<n;i++)if(a[i]!=mn)b.push_back(a[i]);
auto v=rec(b);
for(int i:v)res.push_back(i);
return res;
}
int* ordercoins(){
int w[6];
auto a=rec({1,2,3,4,5,6});
for(int i=0;i<6;i++)w[i]=a[i];
return w;
}
