#include<stdio.h> longlongf(int n, int x, int y){ if (n == 0) return1; int m = 1 << (n - 1); if (x <= m && y <= m) { returnf(n - 1, y, x); } if (x > m && y <= m) { return3LL * m * m + f(n - 1, __________ , m * 2 - x + 1); // 填空 } if (x <= m && y > m) { return1LL * m * m + f(n - 1, x, y - m); } if (x > m && y > m) { return2LL * m * m + f(n - 1, x - m, y - m); } }
intmain(){ int n, x, y; scanf("%d %d %d", &n, &x, &y); printf("%lld", f(n, x, y)); return0; }
constint N = 10000 + 10; int n; std::vector<int> next[N]; bool vis[N];
voidinit(){ memset(vis, false, sizeof(vis)); std::cin >> n; for (int i = 1; i <= n; i++) { int a, b; std::cin >> a >> b; next[a].push_back(b); // 无向图,存双边 next[b].push_back(a); }
}
voiddfs(int k){ int side = 0; for (int j : next[k]) { if (!vis[j]) side++; } if (side == 1 && !vis[k]) { vis[k] = true; dfs(next[k][0]); } }
voidwork(){ int remain = n; int tem_remain; do { tem_remain = remain; for (int i = 1; i <= n; i++) { int side = 0; for (int j : next[i]) { if (!vis[j]) side++; } if (side == 1 && !vis[i]) { vis[i] = true; tem_remain -= 1; dfs(next[i][0]); } } } while (tem_remain != remain); for (int i = 1; i <= n; i++) if (!vis[i]) std::cout << i << " "; }