Download docker_space/frontier_cs_2/examples/gemini2.5pro_4.cpp from JustinTX/shinka-backup: direct link, hf CLI and curl.
- Browser
- Download file 2.65 kB
-
https://huggingface.co/JustinTX/shinka-backup/resolve/main/docker_space/frontier_cs_2/examples/gemini2.5pro_4.cpp
- Command line
-
hf download hf://JustinTX/shinka-backup/docker_space/frontier_cs_2/examples/gemini2.5pro_4.cpp
-
curl -L -o gemini2.5pro_4.cpp https://huggingface.co/JustinTX/shinka-backup/resolve/main/docker_space/frontier_cs_2/examples/gemini2.5pro_4.cpp
2.65 kB
| void solve() { | |
| int n; | |
| std::cin >> n; | |
| if (n == 1) { | |
| std::cout << "1 1" << std::endl; | |
| std::cout.flush(); | |
| return; | |
| } | |
| int L = 0; | |
| if (n > 1) { | |
| L = std::ceil(std::log2(n)); | |
| } | |
| std::vector<std::vector<int>> bits(n + 1, std::vector<int>(L)); | |
| for (int k = 0; k < L; ++k) { | |
| std::vector<int> diffs(n - 1); | |
| for (int v = 1; v < n; ++v) { | |
| std::cout << "0"; | |
| for (int i = 1; i <= n; ++i) { | |
| if (((i - 1) >> k) & 1) { | |
| std::cout << " " << v; | |
| } else { | |
| std::cout << " " << v + 1; | |
| } | |
| } | |
| std::cout << std::endl; | |
| std::cout.flush(); | |
| int m; | |
| std::cin >> m; | |
| if (std::cin.fail()) return; | |
| diffs[v - 1] = m - 1; | |
| } | |
| std::vector<int> s(n + 1, 0); | |
| for (int v = 1; v < n; ++v) { | |
| s[v + 1] = s[v] + diffs[v - 1]; | |
| } | |
| std::vector<int> b0(n + 1); | |
| bool b0_valid = true; | |
| for (int v = 1; v <= n; ++v) { | |
| int val = -s[v]; | |
| if (val < 0 || val > 1) { | |
| b0_valid = false; | |
| break; | |
| } | |
| b0[v] = val; | |
| } | |
| int ik_size = 0; | |
| for (int i = 1; i <= n; ++i) { | |
| if (((i - 1) >> k) & 1) { | |
| ik_size++; | |
| } | |
| } | |
| if (b0_valid) { | |
| int sum_b0 = 0; | |
| for(int v = 1; v <= n; ++v) sum_b0 += b0[v]; | |
| if (sum_b0 == ik_size) { | |
| for (int v = 1; v <= n; ++v) { | |
| bits[v][k] = b0[v]; | |
| } | |
| } else { | |
| for (int v = 1; v <= n; ++v) { | |
| bits[v][k] = 1 - s[v]; | |
| } | |
| } | |
| } else { | |
| for (int v = 1; v <= n; ++v) { | |
| bits[v][k] = 1 - s[v]; | |
| } | |
| } | |
| } | |
| std::vector<int> pos(n + 1, 0); | |
| for (int v = 1; v <= n; ++v) { | |
| for (int k = 0; k < L; ++k) { | |
| if (bits[v][k] == 1) { | |
| pos[v] |= (1 << k); | |
| } | |
| } | |
| pos[v]++; | |
| } | |
| std::vector<int> p(n + 1); | |
| for (int v = 1; v <= n; ++v) { | |
| p[pos[v]] = v; | |
| } | |
| std::cout << "1"; | |
| for (int i = 1; i <= n; ++i) { | |
| std::cout << " " << p[i]; | |
| } | |
| std::cout << std::endl; | |
| std::cout.flush(); | |
| } | |
| int main() { | |
| std::ios_base::sync_with_stdio(false); | |
| std::cin.tie(NULL); | |
| solve(); | |
| return 0; | |
| } |