#P13389. [GCJ 2010 Qualification] Theme Park

    ID: 15258 远端评测题 3000ms 1024MiB 尝试: 0 已通过: 0 显示难度普及 上传者: 标签>模拟数学2010Google Code Jam

[GCJ 2010 Qualification] Theme Park

题目描述

过山车真有趣!似乎每个来到主题公园的人都想乘坐过山车。有些人单独前来;有些人则结伴而来,并且他们不愿意分开,必须一起上车。每个乘坐过山车的人都想再玩一次。每人每次乘坐需要支付 11 欧元;你的任务是计算今天过山车能赚多少钱。

过山车每次最多可容纳 kk 人。人们按组排队等候。每次上车时,按顺序让一个个小组上车,直到没有剩余小组或下一个小组无法全部上车为止;然后过山车就会出发,无论是否坐满。每次游玩结束后,所有乘客会按照原顺序重新排到队伍末尾。过山车一天会运行 RR 次。

例如,假设 R=4R=4,k=6k=6,有四个小组,人数分别为:11、44、22、11。第一次运行时,前两个小组 [1,4][1, 4] 上车,还剩一个空位(22 人的小组无法全部上车,11 人的小组不能插队)。然后这两个小组排到队尾,队伍变为 22、11、11、44。第二次运行时,[2,1,1][2, 1, 1] 共 44 人上车。此时队伍变为 44、22、11、11。第三次运行时,[4,2][4, 2] 共 66 人上车。此时队伍变为 [1,1,4,2][1, 1, 4, 2]。最后一次运行时,[1,1,4][1, 1, 4] 共 66 人上车。最终,过山车一共赚了 2121 欧元。

输入格式

输入的第一行包含测试用例数 TT。接下来有 TT 组测试数据,每组测试数据包含两行。第一行包含三个用空格分隔的整数:RR、kk 和 NN。第二行包含 NN 个用空格分隔的整数 gig_{i},每个 gig_{i} 表示一个小组的人数。g0g_{0} 是第一个小组的人数,g1g_{1} 是第二个小组的人数,依此类推。

输出格式

对于每组测试数据,输出一行,格式为 "Case #x: y",其中 xx 表示测试用例编号(从 11 开始),yy 表示过山车赚到的欧元数。

3
4 6 4
1 4 2 1
100 10 1
1
5 5 10
2 4 2 3 4 2 1 2 1 3
Case #1: 21
Case #2: 100
Case #3: 20

提示

样例说明

  • 1⩽T⩽501 \leqslant T \leqslant 50。
  • gi⩽kg_{i} \leqslant k。

小数据范围(10 分,测试点 1 - 可见)

  • 1⩽R⩽10001 \leqslant R \leqslant 1000。
  • 1⩽k⩽1001 \leqslant k \leqslant 100。
  • 1⩽N⩽101 \leqslant N \leqslant 10。
  • 1⩽gi⩽101 \leqslant g_{i} \leqslant 10。

大数据范围(23 分,测试点 2 - 隐藏)

  • 1⩽R⩽1081 \leqslant R \leqslant 10^{8}。
  • 1⩽k⩽1091 \leqslant k \leqslant 10^{9}。
  • 1⩽N⩽10001 \leqslant N \leqslant 1000。
  • 1⩽gi⩽1071 \leqslant g_{i} \leqslant 10^{7}。

由 ChatGPT 4.1 翻译