제출 #1271097

#제출 시각아이디문제언어결과실행 시간메모리
1271097Faggi저울 (IOI15_scales)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>
#include "scales.h"
#define ll long long
#define sz(x) int(x.size())
#define forn(i, n) for (i = 0; i < n; i++)
#define all(x) x.begin(), x.end()
#define pb push_back
#define mp make_pair
#define fr first
#define se second
using namespace std;
/*
int getMedian(int A, int B, int C);
int getHeaviest(int A, int B, int C);
int getLightest(int A, int B, int C);
int getNextLightest(int A, int B, int C, int D);
void answer(int C[]);*/

void init(int T)
{
}

void ordQ(vector<ll> &q, ll x, bool rev=0)
{
    vector<ll> q2;
    q2.pb(x);
    q2.pb(getMedian(q[0], q[1], q[2]));
    for (ll k = 0; k < sz(q); k++)
        if (q[k] != q2[0] && q[k] != q2[1])
            q2.pb(q[k]);
    if(rev)
        reverse(all(q2));
    q=q2;
}


void ord(vector<ll> &v)
{
    vector<ll> ans;
    ans.pb(getLightest(v[0], v[1], v[2]));
    ans.pb(getMedian(v[0], v[1], v[2]));
    for (ll i = 0; i < sz(v); i++)
        if (v[i] != ans[0] && v[i] != ans[1])
            ans.pb(v[i]);
    v = ans;
}
void ret(vector<ll> &v, vector<ll> &q)
{
    ll i;
    int c[6];
    for (i = 0; i < 3; i++)
        c[i] = v[i];
    for (i = 0; i < 3; i++)
        c[i + 3] = q[i];
    answer(c);
}
void orderCoins()
{
    vector<ll> v, q;
    q = {1, 2, 3};
    ll i, x, sig = 4, j, y, z, k;
    for (i = 0; i < 3; i++)
    {
        x = getLightest(q[0], q[1], q[2]);
        v.pb(x);
        for (j = 0; j < sz(q); j++)
            if (q[j] == x)
                q[j] = sig++;
    }
    x = getLightest(q[0], q[1], q[2]);
    y = getHeaviest(v[0], v[1], v[2]);
    for (i = 0; i < sz(q); i++)
        if (x != q[i])
            z = q[i];
    k = getLightest(x, y, z);
    if (k != y)
    {
        j = 0;
        for (i = 0; i < sz(v); i++)
            if (v[i] == y)
                j = i;
        for (i = 0; i < sz(q); i++)
            if (q[i] == x)
            {
                swap(q[i], v[j]);
                break;
            }
        ord(v);
        ordQ(q,q[i]);
        ret(v, q);
        return;
    }
    ordQ(q,x);
    ordV(v,y,1);
    ret(v, q);
    return;
}

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

scales.cpp: In function 'void orderCoins()':
scales.cpp:94:5: error: 'ordV' was not declared in this scope; did you mean 'ordQ'?
   94 |     ordV(v,y,1);
      |     ^~~~
      |     ordQ