#12312. 珅泽教育CSP-J第一轮模拟考第二十五套 第 40 题

珅泽教育CSP-J第一轮模拟考第二十五套 第 40 题

三、完善程序(程序二:打音游)

一款音游共有 nn 个音符,将一千万分平分给所有音符得到基础分 x=107/nx=10^7/n(保留非整数部分)。其中 mm 个音符根据是否击中可获得 x+1x+1 分或 0 分;其余 nmn-m 个音符根据击中精度可获得 x+1xx/20x+1、x、x/2、0 分之一。总得分向下取整。给定 n,mn,m,求可能得到的不同分数数量。

输入为两个非负整数 n,mn,m,满足 1n1071\le n\le 10^70mn0\le m\le n;输出一个正整数。

#include <iostream>
using namespace std;

int main() {
    int n, m;
    cin >> n >> m;
    if (m == n) {
        cout << ① << endl;
        return 0;
    }
    long long M = 10000000;
    int ans = ②;
    int lst = 0;
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j >= 0; --j) {
            int lower = max(0, ③);
            int upper = i - j;
            int base = ④;
            ans += upper - lower + 1;
            if (lower + base <= lst) ans -= lst - (lower + base) + 1;
            lst = ⑤;
        }
    }
    cout << ans << endl;
    return 0;
}
  1. ②处应填( )。

{{ select(1) }}

  • -1
  • 0
  • 1
  • n