2464 - 烧菜(cook.cpp)

题目描述

小 X 正在指挥 M 个机器人做一道家常菜: 白灼青菜。

把一根青菜烧成菜肴需要两个步骤: 洗菜和水煮。 显然, 一根青菜不可能同时被清洗和水煮, 也不可能先被水煮后被清洗。

现在小 X 告诉你他是怎么指挥的。 每当一个机器人空下来:

  • 如果有青菜还没被清洗, 就让这个机器人清洗这根青菜
  • 否则如果有青菜还没被水煮, 就让这个机器人水煮这根青菜
  • 都没有就让这个机器人关机

现在一共需要把 N 根青菜烧成菜肴, 任何一个机器人清洗都要花 A 分钟, 水煮要花 B 分钟。 小 X 想请你告诉他多少分钟后所有菜能被烧好。

输入

第一行 4 个正整数 N,M,A,B, 含义见问题描述。

输出

输出 1 行包含一个整数, 表示多少分钟后所有菜能被烧好。

样例

输入

3 2 9 5

输出

23
说明

样例 1 解释

为了方便说明, 把机器人标号为 1 号机器人和 2 号机器人; 把青菜标号为 1 号、 2 号、3 号青菜。 实际上, 机器人间是没有区别的, 青菜间也是没有区别的。

第 0 分钟, 1 号机器人开始洗 1 号青菜, 2 号机器人开始洗 2 号青菜。

第 9 分钟, 1 号机器人开始洗 3 号青菜, 2 号机器人开始煮 1 号青菜。

第 14 分钟, 2 号机器人开始煮 2 号青菜。

第 18 分钟, 1 号机器人开始煮 3 号青菜。

第 19 分钟, 2 号机器人关机。

第 23 分钟, 所有菜都被烧好了, 1 号机器人关机。

数据范围 本题共有 20 个测试点, 每个测试点 5 分。

对于测试点 1-10 : 1<=N,M,A,B<=50

对于测试点 11-20: 1<=N,M,A,B<=2000

对于测试点 1,2,11,12: M>N, 即机器人比青菜多

对于测试点 3,4,13,14: M=1, 即只有 1 个机器人

对于测试点 5,6,15,16: A=B, 即两个步骤需要的时间相同

来源

2021常州市程序设计小能手比赛试题 T3

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 220
通过人数 79
金币数量 2 枚
难度 基础


上一题 下一题