#3466. Max Sum Counting

0

Max Sum Counting

Max Sum Counting

题目描述

给定两个由 NN 个整数组成的序列:A=(A1,…,AN)A = (A_1, \dots, A_N) 和 B=(B1,…,BN)B = (B_1, \dots, B_N)。求满足以下条件的非空子集 S⊆{1,2,…,N}S \subseteq \{1,2,\ldots,N\} 的个数:

max⁡i∈SAi≥∑i∈SBi\max_{i \in S} A_i \geq \sum_{i \in S} B_i。

由于个数可能很大,请对 998244353998244353 取模输出。

输入格式

输入从标准输入按以下格式给出: NN A1A_1 A2A_2 …\ldots ANA_N B1B_1 B2B_2 …\ldots BNB_N

输出格式

输出满足题目条件的子集 SS 的个数,对 998244353998244353 取模。

2
3 1
1 2
2
2
1 1
2 2
0
20
1937 3980 2689 1208 3640 1979 581 2271 4229 3948 3708 1522 4161 4661 3797 96 3388 3395 2920 2247
4485 2580 174 1156 3770 3396 3558 3500 3494 479 269 3383 1230 1711 3545 3919 134 475 3796 1017
476

提示

1≤N≤50001 \leq N \leq 5000 1≤Ai,Bi≤50001 \leq A_i,B_i \leq 5000 输入中的所有数值都是整数。{1,2,…,N}\{1,2,\ldots,N\} 有三个子集:{1}\{1\}、{2}\{2\} 和 {1,2}\{1,2\}。

对于 S={1}S=\{1\},有 max⁡i∈SAi=3\max_{i \in S} A_i=3 且 ∑i∈SBi=1\sum_{i \in S} B_i=1。 对于 S={2}S=\{2\},有 max⁡i∈SAi=1\max_{i \in S} A_i=1 且 ∑i∈SBi=2\sum_{i \in S} B_i=2。 对于 S={1,2}S=\{1,2\},有 max⁡i∈SAi=3\max_{i \in S} A_i=3 且 ∑i∈SBi=3\sum_{i \in S} B_i=3。

因此,满足条件 max⁡i∈SAi≥∑i∈SBi\max_{i \in S} A_i \geq \sum_{i \in S} B_i 的子集有两个:{1}\{1\} 和 {1,2}\{1,2\}。
可能不存在满足条件的子集。

标签: AtCoder|abc216F

来源

AtCoder|abc216F