T364578 [CZSC 2023] 生存
题目背景
在你通过上一题后,Caiwen 和 明陌Coper 一样非常震惊,于是俩人见到一个人就在一个人面前夸你是未来的计算机科学家。
一个未来的计算机科学家诞生的消息很快传到了 @墨风 的耳朵里,@墨风 听了眉头一皱,于是飞速出了下面一道题,也来考考你
题目描述
众所周知,我们身处一个名为地球Online的游戏中,在这里生存,需要食物、水、心情、Money。(即饱和度、水分条、心情值、存款)(为了简化,我们规定时间均为整点)
**小明同学每小时饱和度下降 $a$,水分条下降 $b$,心情值下降 $c$。** **(默认先发生当前事件再进行下降)**
初始饱和度为 $d$,初始水分条为 $e$,初始心情值为 $f$,初始存款为 $g$。
小明同学进行一天的生存:**(以下 $t$ 均为时间,每次 $t$ 不同)**
* **事件1:吃饭:** 在 $t$ 点,消耗 $k$ 存款,提升 $h$ 饱和度,提升 $u$ 点水分条。
* **事件2:上课:** 在 $t$ 点,心情值降低 $m$。
* **事件3:娱乐:** 在 $t$ 点,消耗 $v$ 存款,心情值提升 $o$。
* **事件4:打工:** 在 $t$ 点,心情值降低 $p$ 点,存款增加 $q$。
以上时间会在一天随机出现 $n$ 次,每次出现事件必须执行。 **(保证事件按读入顺序发生,即保证 $t$ 单调递增。有的时间没有任何事件)**
除此之外,还有下面的事项:
* 当心情值小于 $0$ 时,你所做的任何事消耗的存款 $\times 2$倍
* 当饱和度大于 $100$ 或小于 $0$ 时,将会出现饥饿或饱胀的现象,此时需要消耗 $r$ 点存款将饱和度恢复为 $50$。**(此项费用不受心情值的$\times2$倍率影响)**
* 当水分值大于 $100$ 或小于 $0$ 时,将会出现饥渴或饱胀的现象,此时需要消耗 $s$ 点存款将水分值恢复为 $50$。**(此项费用不受心情值的$\times2$倍率影响)**
* 当存款小于等于 $0$ 时,你将在地球生活不下去,游戏结束。
输入格式
第一行,七个正整数,$a,b,c,d,e,f,g$。
第二行,两个数,$s,r$。
第三行,一个正整数 $n$。
接下来 $n$ 行,对于每一行,首先一个数 $opt$,代表事件类型。随后根据事件类型不同输入的数字个数不同。有下面四种情况
* `1 t k h u`
* `2 t m`
* `3 t v o`
* `4 t p q`
输出格式
输出 `Yes` 或 `No`,代表小明同学今天是否能生存下去,如果不能,请在下一行输出小明死在当天几点。
说明/提示
**数据范围**
对于 $100\%$ 的数据,
$1\le a,b,c\le5$,
$1\le d,e,f,g\le100$,
$1\le n,t\le 24$,
$1\le h,l,m,o,p,k,u\le100$,
$1\le k,q,s,r,v\le10^5$。
简单来说,涉及饱和度,水分条,心情值的数据不会超过 $100$,涉及存款的数据不会超过 $10^5$。
**后记**
看完题目,你又是满头雾水。你下意识看了下数据范围,差点要晕倒。这道题连部分分都没有,看来 @墨风 真想要“置你于死地”。
@墨风 看到你写了满满一屏幕的代码,拍拍你的肩膀说:**写这种代码比较复杂,思维却没啥难度的题的时候,最好先理好思路,不要一上来就着急写代码**。于是你理了理思路,程序先干什么,后干什么,你都想的差不多了,于是看着之前写的一大堆代码,感觉实在看不下去,于是又从头写了一遍。有了思路的梳理,这一遍的代码写起来舒服多了。
@墨风 在看到你又通过了一道题后,欣慰的笑了笑,不过他又叮嘱你:**虽然你又通过了一道题目,但却耗费了不少时间。下次再卡在某一道题目,最好先跳过去看看后面的题目能不能解决**。