Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
137151 | 就这? | 二进制计数游戏 | C++ | 解答错误 | 10 | 0 MS | 252 KB | 681 | 2024-03-09 17:36:47 |
#include <iostream> #include <vector> using namespace std; long long countNumbers(int n, long long s, long long t) { vector<long long> dp(n + 1, 0); dp[0] = 1; for (int i = 1; i <= n; i++) { dp[i] = dp[i - 1] * 2; } long long count = 0; for (int i = n; i >= 0; i--) { if (t >= dp[i] && s <= dp[i] - 1) { count += min(t - dp[i] + 1, dp[i] - s); } t = min(t, dp[i] - 1); } return count; } int main() { int n; long long s, t; cin >> n >> s >> t; long long result = countNumbers(n, s, t); cout << result << endl; return 0; }