#1732. 珅泽教育CSP-J第一轮模拟考第七套 第 36 题

珅泽教育CSP-J第一轮模拟考第七套 第 36 题

三、完善程序(单选题,每小题3分,共计30分)

第1题

有一个用户,在连续的 nn 天里,都会收到积分,也会消费积分。积分在获得后的 mm 天内有效(mm 为一个给定的整数),过期失效。

在第 ii 天,用户将会获得 pip_i 分,他需要消费 cic_i 分。若积分不足,则用掉全部积分后用其他方式消费。消费积分时,先用最早的。当天获取的积分可以当天消费。请计算这个用户一共消费了多少积分。

const int max_size = 100000;
int queue[max_size];
int head = 0;
int tail = 0;
int main()
{
    int n, m;
    std::cin >> n >> m;
    int sum = 0;
    for (int i = 0; i < n; ++i) {
        int p, c;
        std::cin >> p >> c;
        queue[____(1)____] = p;
        while ( ____(2)____ ) {
            if ( ____(3)____ ) {
                queue[head] -= c;
                sum += c;
                c = 0;
            }
            else {
                int amount = ____(4)____;
                c -= amount;
                sum += amount;
            }
        }
        if ( ____(5)____ > m) {
            head++;
        }
    }
    std::cout << sum << "\n";
}

(1) 处应填( )。

{{ select(1) }}

  • tail
  • tail+1
  • ++tail
  • tail++