提交时间:2024-03-09 17:36:47

运行 ID: 137151

#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; }