제출 #1200840

#제출 시각아이디문제언어결과실행 시간메모리
1200840NeltMachine (IOI24_machine)C++20
10 / 100
3 ms444 KiB
#include "machine.h" #include <bits/stdc++.h> #define ll long long #define endl "\n" using namespace std; std::vector<int> find_permutation(int n) { std::vector<int> a(n); for (ll i = 0; i < n; i++) a[i] = i; if (n & 1) { std::vector<int> b = use_machine(a); ll xxor = 0; for (ll i = 0; i < n; i++) xxor ^= i ^ b[i]; for (ll i = 0; i < n; i++) b[i] ^= xxor; return b; } else if ((1 << __lg(n)) == n) { a[n - 1] = n; vector<int> b = use_machine(a); ll cnt = 0; for (ll i = 0; i < n; i++) cnt += (b[i] & n) > 0; if (cnt > 1) for (ll i = 0; i < n; i++) b[i] ^= n; ll x = 0; for (ll i = 0; i < n; i++) if ((b[i] & n) > 0) x = b[i] ^ n; for (ll i = 0; i < n; i++) { b[i] ^= x; if (b[i] == n) b[i]--; } return b; } else { vector<int> b = use_machine(a), c; for (ll x = 0; x < 256; x++) { c = b; for (ll i = 0; i < n; i++) c[i] ^= x; sort(c.begin(), c.end()); if (c == a) { for (ll i = 0; i < n; i++) b[i] ^= x; return b; } } } return {0}; }
#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...