AT_joi2026_yo2_d.買い物 3 (Shopping 3)

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

JOI 商店里有 NN 个商品,每个商品都编号为 11 到 NN。第 ii 个商品(1≤i≤N1 \leq i \leq N)的定价为 AiA_i。

在 JOI 商店的网络购物中,购买商品时可以选择使用任意多张同种类型的优惠券(每种类型 00 张及以上)。JOI 商店一共有 QQ 种优惠券,每种优惠券都编号为 11 到 QQ。

当你使用第 jj 种优惠券(1≤j≤Q1 \leq j \leq Q)kk 张时(k≥0k \geq 0),会有如下效果:

  • 对于 i=1,2,…,Ni = 1, 2, \dots, N,第 ii 个商品的价格会变为 max⁡(0, Ai−Dj×k)\max(0,\, A_i - D_j \times k)(max⁡(0, Ai−Dj×k)\max(0,\, A_i - D_j \times k) 表示 00 和 Ai−Dj×kA_i - D_j \times k 中较大的数)。
  • 除了商品价格外,还需要额外支付 Cj×kC_j \times k 的费用。

对于每一种优惠券类型,有 QQ 个问题。第 jj 个问题如下:

  • 只使用第 jj 种优惠券,依次购买 NN 个商品各一个时,所需支付的总金额最少是多少?

给定商品及优惠券的信息,请编写程序计算并回答每个问题。

输入格式

输入为如下格式:

NN QQ A1A_1 A2A_2 ⋯\cdots ANA_N C1C_1 D1D_1
C2C_2 D2D_2
⋮\vdots
CQC_Q DQD_Q

输出格式

输出 QQ 行,第 jj 行(1≤j≤Q1 \leq j \leq Q)输出第 jj 个问题的答案。

输入输出样例

  • 输入#1

    3 4
    8 10 3
    12 5
    3 2
    3 4
    100 100

    输出#1

    20
    14
    8
    21
  • 输入#2

    1 3
    83
    2 5
    4 5
    6 5

    输出#2

    34
    67
    83
  • 输入#3

    15 3
    3 1 4 1 5 9 2 6 5 3 5 8 9 7 9
    1 1
    10 1
    20 1

    输出#3

    9
    67
    77
  • 输入#4

    6 3
    1000000000 999999999 999999998 999999997 999999996 999999995
    1000000000 1
    1 1000000000
    900000000 900000000

    输出#4

    5999999985
    1
    1499999985

说明/提示

小子任务

  1. (66 分)N=1N = 1,Q≤3 000Q \leq 3\,000。
  2. (33 分)N≤100N \leq 100,Q≤100Q \leq 100,Ai≤100A_i \leq 100(1≤i≤N1 \leq i \leq N)。
  3. (88 分)N≤3 000N \leq 3\,000,Q≤3 000Q \leq 3\,000,Dj=1D_j = 1(1≤j≤Q1 \leq j \leq Q)。
  4. (2222 分)N≤3 000N \leq 3\,000,Q≤3 000Q \leq 3\,000。
  5. (1515 分)Dj=1D_j = 1(1≤j≤Q1 \leq j \leq Q)。
  6. (1818 分)Ai≤1 000 000A_i \leq 1\,000\,000(1≤i≤N1 \leq i \leq N)。
  7. (2828 分)无其他额外约束。

样例解释 1

对于第 11 个问题,使用 11 张第 11 种优惠券后各商品价格分别为 3,5,03, 5, 0,总价格为 3+5+0+12×1=203 + 5 + 0 + 12 \times 1 = 20。无法得到比 2020 更小的总价,所以输出 2020。

对于第 22 个问题,使用 44 张第 22 种优惠券后各商品价格分别为 0,2,00, 2, 0,总价格为 0+2+0+3×4=140 + 2 + 0 + 3 \times 4 = 14。无法得到比 1414 更小的总价,所以输出 1414。

对于第 33 个问题,使用 22 张第 33 种优惠券后各商品价格分别为 0,2,00, 2, 0,总价格为 0+2+0+3×2=80 + 2 + 0 + 3 \times 2 = 8。无法得到比 88 更小的总价,所以输出 88。

对于第 44 个问题,不使用第 44 种优惠券,各商品价格分别为 8,10,38, 10, 3,总价格为 8+10+3+100×0=218 + 10 + 3 + 100 \times 0 = 21。无法得到比 2121 更小的总价,所以输出 2121。

该输入示例满足小子任务 2,4,6,72, 4, 6, 7 的约束。

样例解释 2

该输入示例满足小子任务 1,2,4,6,71, 2, 4, 6, 7 的约束。

样例解释 3

该输入示例满足小子任务 2,3,4,5,6,72, 3, 4, 5, 6, 7 的约束。

样例解释 4

该输入示例满足小子任务 4,74, 7 的约束。

数据范围

  • 1≤N≤300 0001 \leq N \leq 300\,000。
  • 1≤Q≤300 0001 \leq Q \leq 300\,000。
  • 1≤Ai≤1091 \leq A_i \leq 10^9(1≤i≤N1 \leq i \leq N)。
  • 1≤Cj≤1091 \leq C_j \leq 10^9(1≤j≤Q1 \leq j \leq Q)。
  • 1≤Dj≤1091 \leq D_j \leq 10^9(1≤j≤Q1 \leq j \leq Q)。
  • 所有输入均为整数。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页