# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
802431 | Liudas | 저울 (IOI15_scales) | C++17 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "scales.h"
using namespace std;
int getHeaviest(int a, int b, int c){
int d;
cout<< a << " " << b << " " << c << endl;
cin >> d;
return d;
}
int getLightest(int a, int b, int c){
int d;
cout<< a << " " << b << " " << c << endl;
cin >> d;
return d;
}
void answer(vector<int> a){
for(int i : a){
cout << i <<" ";
}
cout << endl;
}
void orderCoins(){
vector<int> arr(6);
vector<int> b = {1,2,3,4,5,6};
int ans = getHeaviest(1,2,3);
ans = getHeaviest(ans, 4, 5);
ans = getHeaviest(ans, 6, (ans == 5 ? 4 : 5));
arr[5] = ans;
b.erase(find(b.begin(), b.end(), ans));
ans = getHeaviest(b[0], b[1], b[2]);
ans = getHeaviest(ans, b[3], b[4]);
b.erase(find(b.begin(), b.end(), ans));
arr[4] = ans;
ans = getLightest(b[0],b[1],b[2]);
ans = getLightest(ans, b[3], arr[5]);
b.erase(find(b.begin(), b.end(), ans));
arr[0] = ans;
ans = getHeaviest(b[0],b[1],b[2]);
arr[3] = ans;
int ans2 = getLightest(b[0],b[1],b[2]);
arr[1] = ans2;
b.erase(find(b.begin(), b.end(), ans));
b.erase(find(b.begin(), b.end(), ans2));
arr[2] = b[0];
answer(arr);
}
void init(int T){
for(int i = 0; i < T; i ++){
orderCoins();
}
}