#aBC215H. [ABC215H] Cabbage Master

[ABC215H] Cabbage Master

AT_abc215_h [ABC215H] Cabbage Master

题目描述

卷心菜农户高桥君种植了 NN 个品种(从 11NN)的卷心菜。高桥君拥有品种 ii 的卷心菜 AiA_i 个(1iN1 \leq i \leq N)。这里,所有的卷心菜都是可以区分的

作为卷心菜的批发对象,有 MM 个公司(从 11MM),公司 jj1jM1 \leq j \leq M)下单了 BjB_j 个卷心菜。

每个公司可以收购的卷心菜品种各不相同。对于所有的 i,ji, j 组合(1iN,1jM1 \leq i \leq N, 1 \leq j \leq M):

  • ci,j=1c_{i, j} = 1 时,品种 ii 的卷心菜可以出货给公司 jj
  • ci,j=0c_{i, j} = 0 时,品种 ii 的卷心菜不能出货给公司 jj

如果高桥君能够合理分配所有卷心菜的出货对象,使得对每个公司 jj1jM1 \leq j \leq M)都能出货不少于 BjB_j 个卷心菜,则他可以获得“卷心菜大师”的称号。

すぬけ君为了让高桥君无论如何都无法获得“卷心菜大师”的称号,可以选择吃掉 00 个或更多的卷心菜。すぬけ君不喜欢卷心菜,他会选择吃掉的卷心菜数量最少的方案。

请输出すぬけ君需要吃掉的卷心菜的最少数量,以及吃掉卷心菜的方案数对 998244353998244353 取模的结果。

注意,吃掉卷心菜的方案不同,指的是存在某个卷心菜在一种方案中被吃掉,而在另一种方案中没有被吃掉。这里要注意,即使是同一品种的不同卷心菜也是可以区分的。

输入格式

输入通过标准输入给出,格式如下:

NN MM A1A_1 A2A_2 \ldots ANA_N B1B_1 B2B_2 \ldots BMB_M c1,1c_{1, 1} c1,2c_{1, 2} \ldots c1,Mc_{1, M} c2,1c_{2, 1} c2,2c_{2, 2} \ldots c2,Mc_{2, M} \vdots cN,1c_{N, 1} cN,2c_{N, 2} \ldots cN,Mc_{N, M}

输出格式

请输出すぬけ君需要吃掉的卷心菜的最少数量 XX,以及吃掉卷心菜的方案数对 998244353998244353 取模的结果 YY,用空格隔开。

XX YY

输入输出样例 #1

输入 #1

3 2
2 2 5
3 4
1 0
1 1
0 1

输出 #1

2 6

输入输出样例 #2

输入 #2

1 1
3
4
1

输出 #2

0 1

输入输出样例 #3

输入 #3

1 3
100
30 30 30
1 1 1

输出 #3

11 892328666

说明/提示

限制条件

  • 1N201 \leq N \leq 20
  • 1M1041 \leq M \leq 10^4
  • 1Ai1051 \leq A_i \leq 10^5
  • 1Bj1051 \leq B_j \leq 10^5
  • ci,j{0,1}c_{i, j} \in \{0, 1\}
  • 对于任意 1jM1 \leq j \leq M,存在某个 1iN1 \leq i \leq N 使得 ci,j=1c_{i, j} = 1
  • 输入均为整数

样例解释 1

为了让高桥君无法成为卷心菜大师,すぬけ君需要吃掉 22 个卷心菜。以“品种 ii 的第 jj 个卷心菜”记作 (i,j)(i, j),すぬけ君可以吃掉的卷心菜组合有如下 66 种:

  • (1,1),(1,2)(1, 1), (1, 2)
  • (1,1),(2,1)(1, 1), (2, 1)
  • (1,1),(2,2)(1, 1), (2, 2)
  • (1,2),(2,1)(1, 2), (2, 1)
  • (1,2),(2,2)(1, 2), (2, 2)
  • (2,1),(2,2)(2, 1), (2, 2)

样例解释 2

有时,即使すぬけ君一颗卷心菜都不吃,高桥君也无法成为卷心菜大师。这时,すぬけ君需要吃掉的卷心菜数量为 00,吃掉卷心菜的方案数为 11(即什么都不吃)。

样例解释 3

请注意,吃掉卷心菜的方案数需要对 998244353998244353 取模后输出。

由 ChatGPT 4.1 翻译