제출 #1355269

#제출 시각아이디문제언어결과실행 시간메모리
1355269yogesh_saneMachine (IOI24_machine)C++20
10 / 100
3 ms444 KiB
#include "machine.h"
#include <vector>
#include <numeric>
#include <set>

std::vector<int> find_permutation(int N) {
    std::vector<int> A(N);
    for (int i = 0; i < N; ++i) A[i] = i;

    // The single allowed query
    std::vector<int> B = use_machine(A);

    int X = -1;
    // We iterate through all possible values of X (0-255)
    for (int candidate_x = 0; candidate_x < 256; ++candidate_x) {
        std::vector<bool> seen(N, false);
        bool possible = true;
        
        for (int i = 0; i < N; ++i) {
            int val = B[i] ^ candidate_x;
            if (val < 0 || val >= N || seen[val]) {
                possible = false;
                break;
            }
            seen[val] = true;
        }
        
        if (possible) {
            X = candidate_x;
            break;
        }
    }

    std::vector<int> P(N);
    for (int i = 0; i < N; ++i) {
        P[i] = B[i] ^ X;
    }

    return P;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...