# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
424732 | ollel | 저울 (IOI15_scales) | C++17 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include <iostream>
#include "scales.h"
using namespace std;
#define rep(i,a,b) for(int i = a; i < b; i++)
#define pb push_back
#define lso(x) x&(-x)
typedef long long ll;
typedef vector<int> vi;
typedef vector<vi> vvi;
int t;
// int getLightest(vi x) {
// cout << "lightest:";
// rep(i,0,3) cout << x[i] << " ";cout<<endl;
// int ans; cin >> ans; return ans;
// }
// int getNextLightest(vi x) {
// cout << "next lightest:";
// rep(i,0,4) cout << x[i] << " ";cout<<endl;
// int ans; cin >> ans; return ans;
// }
// int getMedian(vi x) {
// cout << "Median:";
// rep(i,0,3) cout << x[i] << " ";cout<<endl;
// int ans; cin >> ans; return ans;
// }
void init(int T) {t = T;}
// void answer(vi x) {rep(i,0,6) cout << x[i] << " ";}
void orderCoins() {
vi first(3), second(3);
first[0] = getLightest(1, 2, 3);
first[1] = getMedian(1, 2, 3);
rep(i, 1, 4) if (i != first[0] && i != first[1]) first[2] = i;
second[0] = getLightest(4, 5, 6);
second[1] = getMedian(4, 5, 6);
rep(i, 4, 7) if (i != second[0] && i != second[1]) second[2] = i;
vi ordered;
int fi = 0, si = 0;
ordered.pb(getLightest(first[0], first[1], second[0]));
if (ordered[0] == first[0]) fi = 1;//ordered.pb(getLightest({first[1], first[2], second[0]}));
else si = 1;//ordered.pb(getLightest({first[0], first[1], second[1]}));
while (ordered.size() < 6) {
if (si < 3 && fi < 3) {
if (si != 2) ordered.pb(getLightest(first[fi], second[si], second[si + 1]));
else if (fi != 2) ordered.pb(getLightest(first[fi], first[fi + 1], second[si]));
else ordered.pb(getNextLightest(first[0], first[fi], second[si], ordered[ordered.size() - 1]));
if (ordered[ordered.size() - 1] == first[fi]) fi++;
else si++;
}
else if (si < 3) {
ordered.pb(second[si]); si++;
}
else {
ordered.pb(first[fi]); fi++;
}
}
int[6] o;
rep(i,0,6) o[i] = ordered[i];
answer(o);
}
// int main(){
// orderCoins();
// }