답안 #593859

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
593859 2022-07-11T16:50:12 Z davi_bart 저울 (IOI15_scales) C++14
55.5556 / 100
1 ms 212 KB
#pragma GCC optimize("O3")
#include <bits/stdc++.h>

#include "scales.h"
using namespace std;
#define ll long long
// #define int ll
#define fi first
#define se second
#define ld long double
#define pb push_back
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
void init(int T) {
}
void orderCoins() {
    vector<int> v = {1, 2, 3, 4, 5, 6};
    int x = getLightest(1, 2, 3);
    swap(v[0], v[x - 1]);
    int y = getLightest(4, 5, 6);
    swap(v[3], v[y - 1]);
    // for (int x : v) cout << x << " ";
    // cout << endl;
    int z = getMedian(v[0], v[3], v[1]);
    if (z == v[1]) {
        v = {v[0], v[1], v[3], v[2], v[4], v[5]};

        // for (int x : v) cout << x << " ";
        // cout << endl;
        x = getLightest(v[1], v[2], v[3]);
        if (x == v[3]) {
            swap(v[1], v[3]);
            swap(v[2], v[3]);
        } else {
            x = getLightest(v[3], v[4], v[5]);
            if (x == v[5]) swap(v[3], v[5]);
            x = getMedian(v[2], v[3], v[4]);
            if (x == v[2])
                swap(v[2], v[3]);
            else if (x == v[4])
                swap(v[3], v[4]);
        }
        x = getHeaviest(v[0], v[4], v[5]);
        if (x == v[4]) swap(v[4], v[5]);
    } else {
        if (z == v[0]) {
            v = {v[3], v[0], v[1], v[2], v[4], v[5]};
            x = getLightest(v[1], v[4], v[5]);

            if (x == v[4])
                v = {v[0], v[4], v[1], v[2], v[3], v[5]};
            else if (x == v[5])
                v = {v[0], v[5], v[1], v[2], v[3], v[4]};
        } else if (z == v[3]) {
            v = {v[0], v[3], v[1], v[2], v[4], v[5]};
            x = getLightest(v[1], v[2], v[3]);
            if(x==v[3])v={v[0], v[3], v[1], v[2], v[4], v[5]};
        }
        // for (int x : v) cout << x << " ";
        // cout << endl;
        // x = getMedian(v[1], v[2], v[3]);
        // if (x == v[3]) swap(v[2], v[1]);

        for (int j = 3; j >= 2; j--) {
            for (int i = j; i < 4; i++) {
                int x = getLightest(v[i], v[i + 1], v[i + 2]);
                if (x == v[i + 1])
                    swap(v[i + 1], v[i]);
                else if (x == v[i + 2])
                    swap(v[i + 2], v[i]);
            }
        }
        int x = getHeaviest(v[0], v[4], v[5]);
        if (x == v[4]) swap(v[4], v[5]);
    }

    answer(v.data());
}

Compilation message

scales.cpp: In function 'void init(int)':
scales.cpp:13:15: warning: unused parameter 'T' [-Wunused-parameter]
   13 | void init(int T) {
      |           ~~~~^
scales.cpp: In function 'void orderCoins()':
scales.cpp:65:21: warning: declaration of 'x' shadows a previous local [-Wshadow]
   65 |                 int x = getLightest(v[i], v[i + 1], v[i + 2]);
      |                     ^
scales.cpp:17:9: note: shadowed declaration is here
   17 |     int x = getLightest(1, 2, 3);
      |         ^
scales.cpp:72:13: warning: declaration of 'x' shadows a previous local [-Wshadow]
   72 |         int x = getHeaviest(v[0], v[4], v[5]);
      |             ^
scales.cpp:17:9: note: shadowed declaration is here
   17 |     int x = getLightest(1, 2, 3);
      |         ^
# 결과 실행 시간 메모리 Grader output
1 Partially correct 0 ms 212 KB Output is partially correct
2 Partially correct 1 ms 212 KB Output is partially correct
3 Partially correct 0 ms 212 KB Output is partially correct
4 Partially correct 0 ms 212 KB Output is partially correct
5 Partially correct 0 ms 212 KB Output is partially correct
6 Partially correct 0 ms 212 KB Output is partially correct
7 Partially correct 1 ms 212 KB Output is partially correct
8 Partially correct 0 ms 212 KB Output is partially correct
9 Partially correct 1 ms 212 KB Output is partially correct
10 Partially correct 0 ms 212 KB Output is partially correct
11 Partially correct 0 ms 212 KB Output is partially correct
12 Partially correct 0 ms 212 KB Output is partially correct
13 Partially correct 0 ms 212 KB Output is partially correct
14 Partially correct 0 ms 212 KB Output is partially correct
15 Partially correct 0 ms 212 KB Output is partially correct
16 Partially correct 0 ms 212 KB Output is partially correct
17 Partially correct 0 ms 212 KB Output is partially correct
18 Partially correct 0 ms 212 KB Output is partially correct
19 Partially correct 0 ms 212 KB Output is partially correct
20 Partially correct 0 ms 212 KB Output is partially correct
21 Partially correct 0 ms 212 KB Output is partially correct
22 Partially correct 0 ms 212 KB Output is partially correct
23 Partially correct 0 ms 212 KB Output is partially correct
24 Partially correct 0 ms 212 KB Output is partially correct
25 Partially correct 0 ms 212 KB Output is partially correct
26 Partially correct 0 ms 212 KB Output is partially correct
27 Partially correct 0 ms 212 KB Output is partially correct
28 Partially correct 0 ms 212 KB Output is partially correct
29 Partially correct 0 ms 212 KB Output is partially correct
30 Partially correct 0 ms 212 KB Output is partially correct
31 Partially correct 0 ms 212 KB Output is partially correct
32 Partially correct 0 ms 212 KB Output is partially correct
33 Partially correct 0 ms 212 KB Output is partially correct
34 Partially correct 0 ms 212 KB Output is partially correct
35 Partially correct 0 ms 212 KB Output is partially correct
36 Partially correct 1 ms 212 KB Output is partially correct
37 Partially correct 0 ms 212 KB Output is partially correct
38 Partially correct 0 ms 212 KB Output is partially correct
39 Partially correct 0 ms 212 KB Output is partially correct
40 Partially correct 1 ms 212 KB Output is partially correct