#2411. 农场技艺大赛

农场技艺大赛

题目描述

农夫约翰有3N(1\red{3N(1≤}N\red{N≤}500000)\red{500000)}头牛,编号依次为1...3N\red{1...3N,}每头牛都有一个整数值的体 重Wi(1\red{W_i(1≤}Wi\red{W_i≤}d)\red{d),}约翰准备参加农场技艺大赛,向广大的农业社区展示他的奶牛

大赛规则允许约翰带N\red{N}头牛参赛.约翰给每头牛赋予了一个"有用度"Ui(1\red{U_i(1≤}Ui\red{U_i≤}h),\red{h),}它表 示了某头牛在比赛中的有用程度,约翰希望他选出的奶牛的有用度之和最大.

有可能选出很多组的N\red{N}头牛都能达到有用度最大和.约翰害怕选出的N\red{N}头牛的总重量会给大赛 带来震撼,所以,要考虑优先选择体重轻的奶牛.

帮助约翰选出N\red{N}头总重量最轻,并且有用度之和最大的奶牛,输出体重模M(107\red{M(10^7≤}M\red{M≤} 109)\red{10^9)}后的余数.

注意:为了使输入更快,约翰使用了一个多项式来生成每头牛的体重和有用度.对每头牛I,\red{I,} 体重和有用度的计算公式为:

WI=(aI5+bI2+c)modd\red{W_I=(aI^5+bI^2+c) mod d}

UI=(eI5+fI3+g)modh\red{U_I=(eI^5+fI^3+g) mod h}

各个 系数的取值范围为: 0\red{0≤}a,b,c,e,f,g\red{a,b,c,e,f,g≤}109\red{10^9,}107\red{10^7≤}d,h\red{d,h≤}109.\red{10^9.}这个多项式有时会生成重 复的数,你的程序要正确处理这种情况.

输入格式

1\red{1}行:10\red{10}个空格分开的整数: N,a,b,c,d,e,f,g,h,M\red{N, a, b, c, d, e, f, g, h, M}

输出格式

1\red{1}行:满足总重量最轻,且用度之和最大的N\red{N}头奶牛的总体重模M\red{M}后的余数。

样例

输入样例

2 0 1 5 55555555 0 1 0 55555555 55555555

输出样例

51

提示

样例说明:公式生成的体重和有用度分别为: 体重:5,6,9,14,21,30\red{5, 6, 9, 14, 21, 30 }有用度:0,1,8,27,64,125.\red{0, 1, 8, 27, 64, 125.}