PAT 甲级 1011 World Cup Betting (20分)

一、原题及翻译

With the 2010 FIFA World Cup running, football fans the world over were becoming increasingly excited as the best players from the best teams doing battles for the World Cup trophy in South Africa. Similarly, football betting fans were putting their money where their mouths were, by laying all manner of World Cup bets.

随着2010年世界杯的进行,最强球队中的最优秀球员为了南非世界杯而战,而球迷们也因此越来越兴奋。与此同时,爱打赌的球迷们也开始通过各种方式来下注,把钱都花在了嘴边上。

Chinese Football Lottery provided a "Triple Winning" game. The rule of winning was simple: first select any three of the games. Then for each selected game, bet on one of the three possible results -- namely W for win, T for tie, and L for lose. There was an odd assigned to each result. The winner's odd would be the product of the three odds times 65%.

中国足球彩票推出了一个叫“赢三番”的玩法。游戏规则很简单:选择任意三场比赛,之后对每一次比赛的比赛结果进行猜测,W代表胜利,T代表平局,L代表失败。而每场比赛的每种结果都会有一个赔率。胜利者的赔率将是三个赔率乘以65%的乘积。

For example, 3 games' odds are given as the following:

举个栗子,三场游戏的赔率如下:

W    T    L
1.1  2.5  1.7
1.2  3.1  1.6
4.1  1.2  1.1

To obtain the maximum profit, one must buy W for the 3rd game, T for the 2nd game, and T for the 1st game. If each bet takes 2 yuans, then the maximum profit would be (4.1×3.1×2.5×65%−1)×2=39.31 yuans (accurate up to 2 decimal places).

如果要获得最大的利润,第三局要买W,第二局要买T,而第一局要买T。假设下注2块钱,而最终赢得的钱数是 (4.1×3.1×2.5×65%−1)×2=39.31 元(精确到2位小数)

Input Specification:

输入格式:

Each input file contains one test case. Each case contains the betting information of 3 games. Each game occupies a line with three distinct odds corresponding to WT and L.

输入文件包含一个测试样例。每个测试样例包含三场游戏的赔率信息,每场游戏的信息只占一行,由W,T,L三种结果的赔率组成。

Output Specification:

输出格式:

For each test case, print in one line the best bet of each game, and the maximum profit accurate up to 2 decimal places. The characters and the number must be separated by one space.

对于每个测试样例,在一行中打印出每场游戏的最佳猜测和最终赢得的最大钱数(精确到2位小数),字母和数字之间要有一个空格。

Sample Input:

输入样例:

1.1 2.5 1.7
1.2 3.1 1.6
4.1 1.2 1.1

Sample Output:

输出样例:

T T W 39.31

二、个人解析

乍一看题目描述挺复杂,一琢磨发现又是一道送分题,一遍过。注意一下,精确到两位小数而不是四舍五入。

三、代码

#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
#include<stack>
using namespace std;
int main()
{
	vector<float> games(3, 0);
	int res[3] = {0, 0, 0};
	char pri[3] = {'W', 'T', 'L'};
	float sum = 1;
	float max = 0;
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			cin >> games[j];
			if (max < games[j])
			{
				res[i] = j;
				max = games[j];
			}
			games[j] = 0;
		}
		cout << pri[res[i]] << " ";
		sum *= max;
		max = 0;
	}
	sum = ((sum * 0.65) - 1) * 2;
	printf("%.2f", sum);
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值