传统题 1000ms 256MiB

打BOSS 5.0

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

小 z 挑战大BOSS,BOSS血量为 hphp,小 z 决定用双向大炮来轰击他,双向大炮装填炮弹的容量为 ss

小 z 每回合有以下两种操作:

add N :在大炮尾部装填一枚能对BOSS造成 NN点伤害的炮弹。

fire:发射一枚炮弹,当前端炮弹的伤害大于等于尾部炮弹伤害时-发射前端炮弹,否则发射尾部的炮弹。

小 z 会按照题目规则进行 mm 回合操作,如果大炮已经装满(每枚炮弹的所占的空间都为1),则小 z 准备继续装填的炮弹只能丢弃。

问小 z 在第几回合可以打败BOSS (血量≤0时) ,如果 mm 回合之后仍然无法打败BOSS,请输出 "-1"。

输入格式

第一行包含三个整数 m,s,hpm,s,hp

接下来 mm 行,每行首先一个字符串代表当前回合的操作,如果字符串为 "add",那么会接着输入一个整数 NN,如果字符串为 "fire",那么会进行攻击操作。

1m31051≤m≤3*10^5,1s31051≤s≤3*10^5,1hp1091≤hp≤10^9,1N20001≤N≤2000

输出格式

问小 z 在第几回合可以打败BOSS (血量≤0时) ,如果 mm 回合之后仍然无法打败BOSS,请输出 "-1"。

8 3 10
fire
add 6
add 1
add 5
add 100
fire
fire
fire
7

提示

双端队列的定义`deque<数据类型>容器名`
可以在队列的`两端`进行元素的插入和删除操作。
1.插入元素:
push_back(value): 在deque的尾部插入一个元素。  
push_front(value): 在deque的头部插入一个元素。
2.删除元素:
pop_back(): 删除deque的尾部元素。
pop_front(): 删除deque的头部元素。
3.访问元素:
front(): 返回deque的头部元素的引用。
back(): 返回deque的尾部元素的引用。
4.size(): 返回deque中元素的个数
5.empty(): 如果deque为空,则返回true;否则返回false
6.clear(): 删除deque中的所有元素,使其变为空。

线上第2期--D2 STL

未认领
状态
已结束
题目
10
开始时间
2024-7-30 0:00
截止时间
2024-11-1 23:59
可延期
24 小时