Submission #1181699

#TimeUsernameProblemLanguageResultExecution timeMemory
1181699PAndaSMachine (IOI24_machine)C++20
Compilation error
0 ms0 KiB
#include<vector>

using namespace std;

vector<int> use_machine(vector<int> a);

vector<int> find_permutation(int n){
    if(n % 2) return find_permutation_odd(n);
    else return find_permutation_even(n);
}

vector<int> find_permutation_odd(int n){
    vector<int> inp(n);
    int tmp = 0;
    for(int i = 0; i < n; i++){
        inp[i] = i;
        tmp ^= i;
    }
    vector<int> out = use_machine(inp);
    for(int i = 0; i < n; i++){
        tmp ^= out[i];
    }
    for(int i = 0; i < n; i++){
        out[i] ^= tmp;
    }
    return out;
}

vector<int> find_permutation_even(int n){
    vector<int> inp(n);
    for(int i = 0; i < n; i++){
        inp[i] = i;
    }
    inp[n - 1] += 3;
    int des_sum = 0;
    for(int i = 0; i < n; i++){
        des_sum += inp[n - 1] ^ inp[i];
    }
    vector<int> out = use_machine(inp);
    int act_sum = 0;
    int x;
    for(int i = 0; i < n; i++){
        act_sum = 0;
        for(int j = 0; j < n; j++) act_sum += out[i] ^ out[j];
        if(act_sum == des_sum){
            x = (n + 2) ^ nums[i];
            break;
        }
    }
    for(int i = 0; i < n; i++){
        out[i] ^= x;
        if(out[i] == n + 2) out[i] -= 3;
    }
    return out;
}

Compilation message (stderr)

machine.cpp: In function 'std::vector<int> find_permutation(int)':
machine.cpp:8:22: error: 'find_permutation_odd' was not declared in this scope; did you mean 'find_permutation'?
    8 |     if(n % 2) return find_permutation_odd(n);
      |                      ^~~~~~~~~~~~~~~~~~~~
      |                      find_permutation
machine.cpp:9:17: error: 'find_permutation_even' was not declared in this scope; did you mean 'find_permutation'?
    9 |     else return find_permutation_even(n);
      |                 ^~~~~~~~~~~~~~~~~~~~~
      |                 find_permutation
machine.cpp: In function 'std::vector<int> find_permutation_even(int)':
machine.cpp:46:27: error: 'nums' was not declared in this scope
   46 |             x = (n + 2) ^ nums[i];
      |                           ^~~~