献血

Description

最近大连理工大学正在进行大规模献血活动,但是献血之前要验血,防止某某人有XX疾病。现在有N个报名参加献血,要检验一种疾病,该疾病在人群中的发生概率是p,验证该疾病的方案有两种:
  A:每个人都验血1次。
  B : 把N给人分成每组k个人的小组(确保k整除N),把小组的血混在一起验(假设不会反应),如果是显示有病,则需要对这个小组的人每个人重新验血。如果没有病,那就全部安全。
  现给你N,k,p。要求用哪种方案会使得献血次数的期望少。

Input

输入为多组数据每次输入为3个数 分别代表N(N<500),k(k<30),p(0<=p<=1)

Output

每组输出一行,如果A方案次数少输出A,如B方案验血次数少就输出B。如果两个方案的次数相差小于1e-8的话,输出BOTH.

Sample Input

10 2 0.5
10 2 0.01

Sample Output

A
B

#include<stdio.h>
#include<math.h>
int main()
{
    int n,k;
    double p,ans1,ans2;
    while(~scanf("%d%d%lf",&n,&k,&p))
    {
        ans1=n;
        ans2=(1-pow(1-p,k))*n+n/k;
        if(fabs(ans1-ans2)<1e-8)printf("BOTH\n");
        else if(ans1-ans2>0)puts("B");
        else puts("A");
    }
    return 0;
}



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值