题目描述
世界杯来了!!!自然,足球博彩也变得炙手可热。现在有n家博彩公司针对比赛的胜负平给出不同的赔率(比如,赔率为1赔1.5,即如果下注1块钱,猜对了会获得1.5元,盈利0.5元),请问是否有一种策略可以保证一定赢钱?
输入
第一行是一个整数T(1≤T≤1000),表示样例的个数。 每个样例的第一行是一个整数n(1≤n≤10),表示博彩公司的数量。 以后的每行包括三个浮点数,w,d,l(1.0<w,d,l≤100.0),分别表示比赛主队胜平负的赔率。
输出
每行输出一个样例的结果,如果存在必赢的策略,输出"Yes";否则输出"No"。
样例输入
2 2 1.3 4.8 10.5 1.4 4.0 9.7 2 1.3 5.6 9.8 1.45 5.0 8.9
样例输出
No Yes
理解题目含义,首先找出每一部分赔率最大的那家博彩公司,然后结合赔率定义,1/a+1/b+1/c<1时是一定可以赢钱的。
代码如下:
#include<stdio.h>
int main()
{
int num1, num2;
double a,b,c;
double num[10][3];
scanf("%d", &num1);
for (int i=0;i!=num1;i++)
{ scanf("%d", &num2);
for (int j=0;j!=num2;j++)
{
scanf("%lf %lf %lf", &num[j][0], &num[j][1], &num[j][2]);
}
a=0,b=0,c=0;
for(int k=0;k!=num2;k++){
if(a<num[k][0]){
a=num[k][0];
}
if(b<num[k][1]){
b=num[k][1];
}
if(c<num[k][2]){
c=num[k][2];
}
}
if (1/a+1/b+1/c<1)//解题关键
{
printf("Yes\n");
}
else
{
printf("No\n");
}
}
return 0;
}