Submission #1181704

#TimeUsernameProblemLanguageResultExecution timeMemory
1181704PAndaSMachine (IOI24_machine)C++20
10 / 100
3 ms432 KiB
#include<vector> using namespace std; vector<int> use_machine(vector<int> a); 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) ^ out[i]; break; } } for(int i = 0; i < n; i++){ out[i] ^= x; if(out[i] == n + 2) out[i] -= 3; } return out; } vector<int> find_permutation(int n){ if(n % 2) return find_permutation_odd(n); else return find_permutation_even(n); }
#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...