最厉害的机器人

背景

Wind设计了很多机器人。但是它们都认为自己是最强的,于是,一场比赛开始了~

描述

机器人们都想知道谁是最厉害的,于是它们进行如下一种比赛。

每个机器人需要在最短的时间内找到自己面前的一个球,走到它面前并绕过它,将球推进身后的球门。

首先Wind给了每个机器人一些钱,让他们去补充自己的装备,Wind给的钱恰好够补充k个装备。

有如下几个装备可供补充:亮度传感器,超声波测距,触动传感器,马达。(每种装备最多有10个)
而机器人找到球的时间=(20-亮度传感器*2)*x1,球离机器人的距离为(100-超声波测距*7)*x2,绕过球的距离为(100-触动传感器*9)*x3,机器人的速度为(10+马达*1)*x4。

换句话说,总共的时间为,找球的时间+走到球的时间+绕过球的时间+走回原地的时间。

机器人们要如何配置自己的装备才能达到最短的时间呢?

格式

输入格式

每组测试数据只有1行
5个数k,x1,x2,x3,x4 (0<=k<=40,1<=x1,x2,x3,x4<=10,且均为整数)

输出格式

对每组数据输出1行
为最短的时间,保留3位小数

样例1

样例输入1

5 1 1 1 1

样例输出1

39.000

限制

每个测试点1s

提示

因为有了超声波,所以距离更加精确。

因为有了触动传感器,可以更精确的感觉到球。

(有点牵强- -将就看吧。)

来源

Wind

 

#include<stdio.h>
int main()
{
    double n,x1,x2,x3,x4,m;
    double min=2000,Time;
    scanf("%lf%lf%lf%lf%lf",&n,&x1,&x2,&x3,&x4);
    for(int i=0;i<=10;i++)
        for(int j=0;j<=10;j++)
            for(int k=0;k<=10;k++)
            {
                if(i+j+k<=n)
                {
                    m=n-i-j-k;
                    Time=((20.0-i*2.0)*x1+((100.0-j*7.0)*x2*2.0+(100.0-k*9.0)*x3)/((10.0+m*1.0)*x4));
                    if(Time<min) min=Time;
                }
            }
    printf("%0.3lf\n",min);
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值