扑克游戏V4
题号:NC200383
时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

社会人士xp深谙洗牌之道。据悉,xp最多的时候一次性洗了2000副牌!这一壮举甚至被记录进了长尼斯世界纪录

可惜,洞察一切的你发现了xp洗牌的本质:每次娴熟的手法表演背后,做的只是一次切牌的动作而已——将牌堆前a张牌放到第b张牌的后面。为了表演效果,xp会重复这个花式切牌动作k次。

现在,m位学妹围着xp,在玩一种船新版本的扑克游戏。首先,由xp洗牌、发牌。发牌时,xp会将牌按顺序一张一张地发给学妹们。之后,学妹们计算他们手上牌的点数总和并喊出来,最大的获胜。这是一种很特殊的扑克牌,一副牌共有n张,牌面的点数范围是1~1000000000。

为了揭发xp出老千的事实,你需要在xp发完牌的瞬间,喊出赢家的点数总和。

输入描述:

有多组输入。

每组输入两行。

第一行输入五个整数,含义见题目描述

第二行输入n个整数,代表每张牌牌面上的点数。

输出描述:

对于每组输入,输出题目描述中扑克游戏结束时,胜出者持有的牌面点数总和
示例1

输入

复制
6 2 5 3 2
1 2 3 4 5 6
12 3 10 5 3    
2 2 2 3 3 3 4 4 4 5 5 5

输出

复制
14
16

备注:

 代表n可以被m整除

样例一解释:初始牌堆为123456,切牌一次将12放到5后面,成为345126,再切一次是512346,再切一次是234516,之后发牌共2人,A手牌是241,B手牌是356,B点数总和14获胜。