#4413. 求求求求

求求求求

T4--求求求求(1s/512M)

题目描述

给定矩阵 Cn×nC_{n\times n},求:

fk=∑i=1n−k+1∑j=1n−k+1(max⁡i≤x≤i+k−1max⁡j≤y≤j+k−1Cx,y)f_k=\sum_{i=1}^{n-k+1}\sum_{j=1}^{n-k+1}\left(\max_{i\leq x\leq i+k-1}\max_{j\leq y\leq j+k-1}C_{x,y}\right)

即 fkf_k 是所有大小为 k×kk\times k 的子矩阵中元素最大值之和,但是数据忘记造 kk 了,所以请你对于 1≤k≤n1\leq k\leq n 求出每个整数 kk 的 fkf_k。而且矩阵太大了,输入在时限内完成不了,所以只给你两个正整数数列 A1⋯n,B1⋯nA_{1\cdots n},B_{1\cdots n},你需要自己生成矩阵 CC,其中对于 1≤x,y≤n1\leq x,y\leq n,Cx,y=Ax×By+x×By+Ax×y+x×yC_{x,y}=A_x\times B_y+x\times B_y+A_x\times y+x\times y。

输入格式

第一行一个整数 nn,第二行 nn 个整数 A1⋯nA_{1\cdots n},第三行 nn 个整数 B1⋯nB_{1\cdots n}。

输出格式

一行 nn 个整数,第 kk 个整数表示 fkf_k 对 109+710^9+7 取模后的值。

样例

见 down/query 目录下的样例文件。

数据范围

对于 30%30\% 的数据,n≤50n\leq 50;

对于 50%50\% 的数据,n≤3×103n\leq 3\times 10^3;

对于 100%100\% 的数据,1≤n≤1051\leq n\leq 10^5,1≤Ai,Bi≤1091\leq A_i,B_i\leq 10^9。