# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1017271 | parsadox2 | 저울 (IOI15_scales) | C++17 | 1 ms | 600 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "scales.h"
using namespace std;
int tc;
void init(int T)
{
tc = T;
}
void orderCoins()
{
int mn = 1 , mx = 2;
vector <int> vec;
for(int i = 3 ; i <= 6 ; i++)
{
//cout << mn << " " << i << " " << mx << endl;
int mid = getMedian(mn , i , mx);
if(mid == mn)
{
vec.push_back(mn);
mn = i;
}
else if(mid == mx)
{
vec.push_back(mx);
mx = i;
}
else
{
vec.push_back(i);
}
}
if(mn != getLightest(mn , vec[0] , mx))
swap(mn , mx);
//cout << mn << " " << vec[0] << " " << mx << endl;
int id = getMedian(vec[1] , vec[2] , vec[3]);
//cout << vec[1]
if(id == vec[1])
swap(vec[1] , vec[2]);
else if(id == vec[3])
swap(vec[3] , vec[2]);
id = getLightest(vec[0] , vec[1] , vec[3]);
if(id == vec[0])
{
id = getLightest(vec[1] , vec[2] , vec[3]);
if(id != vec[1])
swap(vec[1] , vec[3]);
}
else
{
if(id == vec[3])
swap(vec[1] , vec[3]);
swap(vec[1] , vec[0]);
int bad = vec[1];
id = getNextLightest(vec[2] , vec[3] , mx , bad);
if(id == mx)
{
vec[1] = vec[2];
vec[2] = vec[3];
vec[3] = bad;
}
else if(id == vec[3])
swap(vec[1] , vec[2]);
}
int W[6];
W[0] = mn; W[5] = mx;
for(int i = 1 ; i < 5 ; i++)
W[i] = vec[i - 1];
answer(W);
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |