问题描述
题目翻译:
在2010FIFA世界杯进行时,当最好的球队中最棒的球员在为了世界杯奖杯而在南美拼搏时,来自世界各地的球迷非常激动和兴奋。同样的,爱好足球赌博的人也通过实际行动参与了进来,不过用的是各种世界杯赌博方式。
中国足球彩票推出了一个“三倍赢”游戏。胜利的规则非常简单:首先选择任意三个游戏。然后对于每个选择的游戏,赌其中三个可能的结果中的其中一个,叫W是赢,T的是平局,L是输。对于每个结果都有一个剩余的值。胜利者的剩余将会是三个剩余值的65%。
例如,3个游戏的剩余在下面给出:
W T L
1.1 2.5 1.7
1.2 3.1 1.6
4.1 1.2 1.1
要想获得最大的利润,必须在第三个游戏中买W,第二个游戏中买T,第三个游戏中买T。如果每次赌博花费2元,则最大的最大的利润将会是(4.13.02.5*65%-1)*2= 37.98元。(精确到两位小数)
输入
每个输入文件包含一个测试实例。每个实例包含三个游戏的赌博信息。每个游戏有一行,里面包含三个与W、T和L对应的剩余值。
输出
对于每个测试实例,在一行中输出每个游戏最好的赌博选择,还有精确到两位小数的最大利润。字符和数字必须用一个空格分隔。
样例输入:
1.1 2.5 1.7
1.2 3.1 1.6
4.1 1.2 1.1
样例输出:
T T W 37.31
题目分析
我们边输入边进行判断输出,选出每一行输入中最大的,如果是第一个数最大,输出W;第二个最大输出T;第三个数最大输出L。
然后按照题目中给出的公式记录最后的价格,并保留两位有效数字。
代码
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
char state[3] = {'W','T','L'};
double bet[3][3];
double sum = 1.0;
for(int i = 0;i < 3;i++)
{
double max = 0.0;
int pos = 0;
for(int j = 0;j < 3;j++)
{
cin>>bet[i][j];
if(bet[i][j]>max)
{
max = bet[i][j];
pos = j;
}
}
sum *= max;
cout<<state[pos]<<" ";
}
sum = (sum * 0.65 - 1) * 2;
cout<<setiosflags(ios::fixed)<<setprecision(2)<<sum;
return 0;
}
答题用时7min
Q11——finish√