#L6872. 「THUPC 2023 初赛」背包

「THUPC 2023 初赛」背包

题目描述

本题需解决 完全背包问题,具体要求如下:

现有 nn 种物品,第 ii 种物品的单个体积为 viv_i、价值为 cic_i。每种物品可选择任意多个(包括 00 个)。

qq 次询问,每次询问给定背包容积 VV,需满足以下条件:

  1. 选出的物品体积和 恰好等于 VV
  2. 在满足条件 1 的前提下,最大化选出物品的价值和。

对于每次询问,输出最大价值和;若不存在体积和恰好为 VV 的选法,输出 1-1

输入格式

  • 第一行:两个整数 nnqq,分别表示物品种数和询问次数。
  • 接下来 nn 行:每行两个整数 viv_icic_i,描述第 ii 种物品的体积和价值。
  • 接下来 qq 行:每行一个整数 VV,表示本次询问的背包容积。

输出格式

对于每组询问,输出一行整数:

  • 若存在合法选法,输出最大价值和;
  • 若不存在,输出 1-1

样例

输入

2 2
6 10
8 15
100000000001
100000000002

输出

-1
187500000000

说明

第二组询问的最优方案:选择 33 个物品 111249999999812499999998 个物品 22

数据范围与提示

  • 所有数据:1n501 \leq n \leq 501vi1051 \leq v_i \leq 10^51ci1061 \leq c_i \leq 10^61q1051 \leq q \leq 10^51011V101210^{11} \leq V \leq 10^{12}