CF1251F Red-White Fence

题目描述

Polycarp想在他家附近建一道栅栏。他有$n$个白板和$k$个红板去建造它。每一块板都有一个整数长度。 一个好的栅栏应由一块红板和几块(可能是零块)白板组成。红色的板应该在这道栅栏中是**最长的**,而且红板前的板子长度应为递增,而红板之后的板子长度为递减。如果用了$m$块板子,它们的长度从左到右依次是$l_1,l_2,…,l_m$,那么应该符合以下条件 ①栅栏上应**有且只有一块**红板,设其序号为$j$ ②对于所有的$i∈[1,j-1]$有$l_il_{i+1}$ 在Polycarp建造他的栅栏时,他会从左向右在$0$高度上放置所有板,没有间隙,所以这些板将会组成一个多边形: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1251F/3ccd14049951133b56808a6aa4dc98b4083c170d.png) 例图:一个栅栏的板长数组为$[3,5,4,2,1]$,第二个板是红板。栅栏的周长是$20$。Polycrp对一些特殊周长的栅栏感兴趣。他有喜欢的$q$个偶整数$[Q_1,Q_2,…,Q_q]$,对于每个这样的整数$Q_i$,他想计算有几种不同的周长是$Q_i$的篱笆可以被造出来(如果两个篱笆的板长排列不同,那么就认为这两个篱笆是不同的)你可以帮他计算这些数值吗?

输入格式

输入第一行是两个正整数$n,k(1≤n≤3*10^5,1≤k≤5)$,表示Polycarp拥有的白板和红板的数量 第二行有$n$个正整数$[a_1,a_2,...,a_n](1≤a_i≤3*10^5)$,表示Polycarp拥有的$n$块白板的长度 第三行有$k$个正整数$[b_1,b_2,...,b_k](1≤b_i≤3*10^5)$,表示Polycarp拥有的$k$块红板的长度,所有$b_i$都是不相同的 第四行是一个正整数$q(1≤q≤3*10^5)$,表示特殊周长的数量 第五行有$q$个正整数$[Q_1,Q_2,...,Q_q](4≤Q_i≤12*10^5)$,每个$Q_i$都是偶数,表示Polycarp喜欢的特殊整数(即特殊周长)

输出格式

对于每个$Q_i$,输出一个整数,表示有多少种符合约束条件的周长为$Q_i$的栅栏,由于数量可能很大,结果请对$998244353$取模,每个输出占一行

说明/提示

对于第一个样例,可能的长度序列有(红板加粗) ·周长为$6$:$[$**2**$]$ ·周长为$8$:$[1,$ **2**$]$,$[$**2**$,1]$ ·周长为$10$:$[1,$ **2**$,1]$,$[$**4**$]$ ·周长为$12$:$[1,$ **4**$]$,$[3,$ **4**$]$,$[$**4**$,1]$,$[$**4**$,3]$ ·周长为$14$:$[1,$ **4**$,1]$,$[1,$ **4**$,3]$,$[3,$ **4**$,1]$,$[3,$ **4**$,3]$,$[1,3,$ **4**$]$,$[$**4**$,3,1]$ ·周长为$16$:$[1,$ **4**$,3,1]$,$[3,$ **4**$,3,1]$,$[1,3,$ **4**$,1]$,$[1,3,$ **4**$,3]$ ·周长为$18$:$[1,3,$ **4**$,3,1]$