Sitting in Line

本文介绍了一个有趣的数学游戏——度度熊和他的数字仆人们通过调整位置以获得最大相邻乘积之和。游戏规则包括固定的数字位置和其他可以自由移动的数字。文章提供了输入输出样例。

Problem Description

  度度熊是他同时代中最伟大的数学家,一切数字都要听命于他。现在,又到了度度熊和他的数字仆人们玩排排坐游戏的时候了。游戏的规则十分简单,参与游戏的N个整数将会做成一排,他们将通过不断交换自己的位置,最终达到所有相邻两数乘积的和最大的目的,参与游戏的数字有整数也有负数。度度熊为了在他的数字仆人面前展现他的权威,他规定某些数字只能在坐固定的位置上,没有被度度熊限制的数字则可以自由地交换位置。

Input

  第一行一个整数T,表示T组数据。 每组测试数据将以如下格式从标准输入读入:

  N

  a1 p1

  a2​​ p2​​

   :

  an​​ Pn

  第一行,整数N(≤ ≤ 16),代表参与游戏的整数的个数。

  从第二行到第(N+1) 行,每行两个整数,ai​​(1000≤ ai​​ ≤ 10000)、pi​​(pi​​ 1 或 ≤ pi​​ N),以空格分割。

  ai​​代表参与游戏的数字的值,pi​​代表度度熊为该数字指定的位置,如果pi​​ 1,代表该数字的位置不被限制。度度熊保证不会为两个数字指定相同的位置。

Output

  第一行输出:"Case #i:"。ii代表第ii组测试数据。

  第二行输出数字重新排列后最大的所有相邻两数乘积的和,即max{a1​​a2​​+a2​​a3​​+......+aN1​​aN​​}。

Sample Input

2
6
-1 0
2 1
-3 2
4 3
-5 4
6 5
5
40 -1
50 -1
30 -1
20 -1
10 -1

Sample Output

Case #1:
-70
Case #2:
4600

 

转载于:https://www.cnblogs.com/maxin/p/5515209.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值