打BOSS 5.0
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
小 z 挑战大BOSS,BOSS血量为 ,小 z 决定用双向大炮来轰击他,双向大炮装填炮弹的容量为 。
小 z 每回合有以下两种操作:
add N :在大炮尾部装填一枚能对BOSS造成 点伤害的炮弹。
fire:发射一枚炮弹,当前端炮弹的伤害大于等于尾部炮弹伤害时-发射前端炮弹,否则发射尾部的炮弹。
小 z 会按照题目规则进行 回合操作,如果大炮已经装满(每枚炮弹的所占的空间都为1),则小 z 准备继续装填的炮弹只能丢弃。
问小 z 在第几回合可以打败BOSS (血量≤0时) ,如果 回合之后仍然无法打败BOSS,请输出 "-1"。
输入格式
第一行包含三个整数 。
接下来 行,每行首先一个字符串代表当前回合的操作,如果字符串为 "add",那么会接着输入一个整数 ,如果字符串为 "fire",那么会进行攻击操作。
,,,
输出格式
问小 z 在第几回合可以打败BOSS (血量≤0时) ,如果 回合之后仍然无法打败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中的所有元素,使其变为空。