#1960. 珅泽教育CSP-J第一轮模拟考第十二套 第 39 题

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

三、完善程序(共计 3030 分)

单项选择题,每小题 33 分。

第1题 套餐限价

有一家快餐店,出售 NN 种主食,其价格以数组 A[0..N) 表示,出售 MM 种饮料,其价格以数组 B[0..M) 表示。

现推出一种促销活动:顾客可以任选主食及饮料各一份形成套餐,若套餐价格超过一个给定的最高价格 LL,则这份套餐只收取 LL 元。

请计算,若顾客购买所有食物与饮料的搭配(共有 N×MN\times M 种),需要花多少钱。

long long S[MAXN];
long long solve(int N, int M, int L, int A[], int B[])
{
    std::sort(A, A + ____(1)____);
    std::sort(B, B + M);
    S[0] = 0;
    for (int i = 0; i < M; ++i) {
        S[i + 1] = S[i] + B[i];
    }
    long long j = ____(2)____;
    long long sum = 0;
    for (int i = 0; i < N; ++i)
    {
        while (____(3)____ && A[i] + B[j - 1] > L)
        {
            j--;
        }
        sum += (A[i] * ____(4)____);
        sum += S[____(5)____];
        sum += (M - j) * L;
    }
    return sum;
}

22)处应填( )。

{{ select(1) }}

  • M - 1
  • M
  • M + 1
  • N