제출 #282532

#제출 시각아이디문제언어결과실행 시간메모리
282532SamAnd저울 (IOI15_scales)C++17
46.02 / 100
1 ms384 KiB
#include "scales.h"
#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define m_p make_pair
#define all(x) (x).begin(),(x).end()
#define sz(x) ((int)(x).size())
typedef long long ll;

void init(int T)
{
}

void orderCoins()
{
    /*freopen("input.txt", "w", stdout);
    printf("720\n");
    int t[6] = {1, 2, 3, 4, 5, 6};
    do
    {
        for (int i = 0; i < 6; ++i)
            printf("%d ", t[i]);
        printf("\n");
    } while (next_permutation(t, t + 6));
    exit(0);*/

    vector<int> l;
    l.push_back(getLightest(1, 2, 3));
    l.push_back(getMedian(1, 2, 3));
    l.push_back(1 + 2 + 3 - l[0] - l[1]);

    vector<int> r;
    r.push_back(getLightest(4, 5, 6));
    r.push_back(getMedian(4, 5, 6));
    r.push_back(4 + 5 + 6 - r[0] - r[1]);

    vector<int> u;
    u.push_back(getNextLightest(4, 5, 6, l[0]));
    u.push_back(getNextLightest(4, 5, 6, l[1]));
    u.push_back(getNextLightest(4, 5, 6, l[2]));

    vector<int> ans;
    if (u[0] == u[1] && u[1] == u[2] && u[2] == r[0])
    {
        int uu = getNextLightest(1, 2, 3, r[0]);
        if (uu != l[0])
        {
            for (int i = 0; i < 3; ++i)
            {
                if (l[i] == uu)
                {
                    for (int j = 0; j < i; ++j)
                        ans.push_back(l[j]);
                    for (int j = 0; j < 3; ++j)
                        ans.push_back(r[j]);
                    for (int j = i; j < 3; ++j)
                        ans.push_back(l[j]);
                    break;
                }
            }
        }
        else
        {
            if (getLightest(l[0], l[1], r[0]) == l[0])
            {
                for (int i = 0; i < 3; ++i)
                    ans.push_back(l[i]);
                for (int i = 0; i < 3; ++i)
                    ans.push_back(r[i]);
            }
            else
            {
                for (int i = 0; i < 3; ++i)
                    ans.push_back(r[i]);
                for (int i = 0; i < 3; ++i)
                    ans.push_back(l[i]);
            }
        }
    }
    else
    {
        int j = 0;
        for (int i = 0; i < 3; ++i)
        {
            while (j < 3 && u[j] == r[i])
                ans.push_back(l[j++]);
            ans.push_back(r[i]);
        }
        while (j < 3)
            ans.push_back(l[j++]);
    }

    int W[] = {ans[0], ans[1], ans[2], ans[3], ans[4], ans[5]};
    answer(W);
}

컴파일 시 표준 에러 (stderr) 메시지

scales.cpp: In function 'void init(int)':
scales.cpp:11:15: warning: unused parameter 'T' [-Wunused-parameter]
   11 | void init(int T)
      |           ~~~~^
#Verdict Execution timeMemoryGrader output
Fetching results...