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$。 **后记** 看完题目,你又是满头雾水。你下意识看了下数据范围,差点要晕倒。这道题连部分分都没有,看来 @墨风 真想要“置你于死地”。 @墨风 看到你写了满满一屏幕的代码,拍拍你的肩膀说:**写这种代码比较复杂,思维却没啥难度的题的时候,最好先理好思路,不要一上来就着急写代码**。于是你理了理思路,程序先干什么,后干什么,你都想的差不多了,于是看着之前写的一大堆代码,感觉实在看不下去,于是又从头写了一遍。有了思路的梳理,这一遍的代码写起来舒服多了。 @墨风 在看到你又通过了一道题后,欣慰的笑了笑,不过他又叮嘱你:**虽然你又通过了一道题目,但却耗费了不少时间。下次再卡在某一道题目,最好先跳过去看看后面的题目能不能解决**。