atcoder#ARC128F. [ARC128F] Game against Robot
[ARC128F] Game against Robot
题目描述
から までの番号のついた 枚のカードがあり,カード には整数 が書かれています. なお, は偶数です.
すぬけくんとロボットがゲームをします. ゲームは,以下のように進行します.
- ゲームマスターが の順列 を宣言する. この順列はすぬけくんとロボット両方に知らされる.
- その後,すぬけくんからはじめて,両者が交互に手番をプレイする. 各手番では以下のことが起こる.
- すぬけくんの手番: 残っているカードの中から好きなものを一つ選び,食べる.
- ロボットの手番: 残っているカードのうち, が最大となるカード を選び,燃やす.
- カードがなくなったらゲームは終了する.
最終的なゲームのスコアは,すぬけくんが食べたカードに書かれた整数の総和です. すぬけくんは,ゲームのスコアを最大化するように最適な行動をします.
順列 は 通り考えられますが,これらすべてについてゲームのスコアを求め,その総和を で割った余りを求めてください.
输入格式
入力は以下の形式で標準入力から与えられる.
输出格式
答えを出力せよ.
题目大意
给定 个数的序列 ,你需要求出每一个排列 的权值之和模 的值。
对于一个排列 ,它的权值定义如下:
- 两个人 Alice 和 Bob 轮流玩游戏,Alice 先手。
- 在 Alice 的回合,她可以取走序列中的一个数字。
- 在 Bob 的回合,他必须取走当前剩下的所有数字中, 最小的 。
权值为 Alice 通过最优策略获得的数字之和。
,。
2
1 2
4
4
1 100 10000 1000000
24200400
10
866111664 178537096 844917655 218662351 383133839 231371336 353498483 865935868 472381277 579910117
710984634
提示
制約
- は偶数
- 入力される値はすべて整数である
Sample Explanation 1
順列 に依らず,すぬけくんはカード を食べます.
Sample Explanation 2
例えば であるとき,ゲームは以下のように進行します. - すぬけくんがカード を食べる. - ロボットがカード を燃やす. - すぬけくんがカード を食べる. - ロボットがカード を燃やす. このとき,ゲームのスコアは になります.