답안 #801907

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
801907 2023-08-02T08:21:56 Z _martynas 저울 (IOI15_scales) C++11
38.4615 / 100
1 ms 304 KB
#include "scales.h"
#include <bits/stdc++.h>

using namespace std;

void init(int T) {
    /* ... */
}

void orderCoins() {
    /* ... */
    int first_half_light = getLightest(1, 2, 3);
    int first_half_heavy = getHeaviest(1, 2, 3);
    int first_half_mid = 1^2^3^first_half_light^first_half_heavy;
    int second_half_light = getLightest(4, 5, 6);
    int second_half_heavy = getHeaviest(4, 5, 6);
    int second_half_mid = 4^5^6^second_half_light^second_half_heavy;
    vector<char> order = {'L', 'L', 'L'}; // L - first half, R - second half
    vector<int> check = {4, 5, 6};
    auto insert_after = [](vector<char> &v, int cnt) {
        if(cnt == 3) {
            v.push_back('R');
        }
        else {
            for(int i = 0; i < v.size(); i++) {
                if(cnt == 0) {
                    v.insert(v.begin()+i, 'R');
                    return;
                }
                if(v[i] == 'L') cnt--;
            }
        }
    };
    for(int x : check) {
        int resp = getNextLightest(first_half_light, first_half_mid, first_half_heavy, x);
        if(resp == first_half_light) {
            int resp1 = getLightest(first_half_light, first_half_mid, x);
            if(resp1 == x) {
                insert_after(order, 0);
            }
            else {
                insert_after(order, 3);
            }
        }
        else {
            if(resp == first_half_mid) {
                insert_after(order, 1);
            }
            else {
                insert_after(order, 2);
            }
            getLightest(1, 2, 3); // do nothing function to have constant Q
        }
    }
    int W[6];
    vector<int> first_half = {first_half_light, first_half_mid, first_half_heavy};
    vector<int> second_half = {second_half_light, second_half_mid, second_half_heavy};
    for(int i = 0, first_it = 0, second_it = 0; i < 6; i++) {
        if(order[i] == 'L') {
            W[i] = first_half[first_it++];
        }
        else {
            W[i] = second_half[second_it++];
        }
    }
    answer(W);
}

Compilation message

scales.cpp: In function 'void init(int)':
scales.cpp:6:15: warning: unused parameter 'T' [-Wunused-parameter]
    6 | void init(int T) {
      |           ~~~~^
scales.cpp: In lambda function:
scales.cpp:25:30: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   25 |             for(int i = 0; i < v.size(); i++) {
      |                            ~~^~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Partially correct 1 ms 212 KB Output is partially correct
2 Partially correct 1 ms 212 KB Output is partially correct
3 Partially correct 1 ms 212 KB Output is partially correct
4 Partially correct 1 ms 212 KB Output is partially correct
5 Partially correct 1 ms 212 KB Output is partially correct
6 Partially correct 0 ms 296 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 304 KB Output is partially correct
12 Partially correct 0 ms 212 KB Output is partially correct
13 Partially correct 1 ms 212 KB Output is partially correct
14 Partially correct 0 ms 212 KB Output is partially correct
15 Partially correct 1 ms 212 KB Output is partially correct
16 Partially correct 0 ms 296 KB Output is partially correct
17 Partially correct 0 ms 212 KB Output is partially correct
18 Partially correct 1 ms 212 KB Output is partially correct
19 Partially correct 1 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 1 ms 212 KB Output is partially correct
24 Partially correct 1 ms 304 KB Output is partially correct
25 Partially correct 1 ms 212 KB Output is partially correct
26 Partially correct 1 ms 212 KB Output is partially correct
27 Partially correct 1 ms 212 KB Output is partially correct
28 Partially correct 1 ms 300 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 1 ms 212 KB Output is partially correct
33 Partially correct 0 ms 212 KB Output is partially correct
34 Partially correct 1 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 1 ms 296 KB Output is partially correct
39 Partially correct 1 ms 300 KB Output is partially correct
40 Partially correct 0 ms 212 KB Output is partially correct