#4816. 分配重复整数

分配重复整数

分配重复整数

题目描述

给你一个长度为 nn 的整数数组 numsnums ,这个数组中至多有 5050 个不同的值。同时你有 mm 个顾客的订单 quantityquantity ,其中,整数 quantity[i]quantity[i] 是第 ii 位顾客订单的数目。请你判断是否能将 numsnums 中的整数分配给这些顾客,且满足:

  • 第 ii 位顾客 恰好 有 quantity[i]quantity[i] 个整数。
  • 第 ii 位顾客拿到的整数都是 相同的  。
  • 每位顾客都满足上述两个要求。

如果你可以分配 numsnums 中的整数满足上面的要求,那么请返回 truetrue ,否则返回 falsefalse 。

输入格式

第一行两个空格分开的整数 nnmm

第二行 nn 个空格隔开的整数表示数组 numsnums 中的各元素;

第三行 mm 个空格隔开的整数表示数组 quantityquantity 中的各元素。

输出格式

一行一个字符串 truetruefalsefalse 表示答案。

示例 1:

4 1
1 2 3 4
2
false

解释: 第 0 位顾客没办法得到两个相同的整数。

示例 2:

4 1
1 2 3 3
2
true

解释: 第 0 位顾客得到 [3,3] 。整数 [1,2] 都没有被使用。

示例 3:

4 2
1 1 2 2
2 2
true

解释: 第 0 位顾客得到 [1,1] ,第 1 位顾客得到 [2,2] 。

提示:

  • n==nums.lengthn == nums.length
  • 1<=n<=1051 <= n <= 10^5
  • 1<=nums[i]<=10001 <= nums[i] <= 1000
  • m==quantity.lengthm == quantity.length
  • 1<=m<=101 <= m <= 10
  • 1<=quantity[i]<=1051 <= quantity[i] <= 10^5
  • numsnums 中至多有 5050 个不同的数字。

SOURCE

分配重复整数