问题描述
小明参加了一个选秀节目的海选,海选有以下几条规则:
-
海选时间总计为 xx 个小时。(如果最后一个人开始表演的时间等于或早于 xx 个小时,评委会看完表演再离开。)
-
评委的耐心有限,如果有人表现太差,会在刚开口直接被赶下台,那么这段时间可以忽略不计。
现在给出每个报名节目的 名称 和 时长,按照报名先到先表演的原则,问小明是否有展示自己实力的机会。
注: 小明表演的节目是:kaomianjin
。
输入格式
- 第一行输入一个正整数 xx(1≤x≤1001≤x≤100),表示海选的总时间(单位:小时)。
- 接下来有若干行,以文件结束符作为结束。
- 每行输入一个字符串,长度不超过 100100,如果字符串为 "tingtingting",则代表该参赛选手被赶下台;
- 如果字符串不是 "tingtingting",则代表节目名称,并且后面再输入一个整数 tt,表示该节目时长(单位:分钟,tt 是一个不超过 1515 的正整数)。
行数不超过 104104。
输出格式
- 如果小明没有得到展示自己的机会,输出 "Unfortunately.";
- 如果小明成功展现自己的实力,输出 "Congratulations!";
- 如果小明直接被赶下台,输出 "Hahaha."。
输入数据 1
5
libukaini 5
kaomianjin 10
tingtingting
Copy
输出数据 1
Hahaha.
Copy
解释:小明前面的参赛选手表演总时长为 55 分钟,小于等于海选总时长,因此小明能在海选上表演节目;但在表演时,立刻被评委叫停,因此输出 "Hahaha."。
输入数据 2
5
libukaini 5
tingtingting
kaomianjin 10
kuailelaojia 3
Copy
输出数据 2
Congratulations!
Copy
解释:排在小明前面的选手被叫停了,不占用总时长,小明可以表演,并且小明后面评委没有立刻叫停,因此输出 "Congratulations!"。
#include<bits/stdc++.h>
using namespace std;
vector<string> v;
int main(){
int n;
cin>>n;
n*=60;
string s;
int time;
cin>>s>>time;
n-=time;
v.push_back(s);
while(n>=0){
cin>>s;
if(s=="tingtingting"){
if(v[v.size()-1]=="kaomianjin"){
cout<<"Hahaha.";
return 0;
}
}else{
cin>>time;
if(v[v.size()-1]=="kaomianjin"){
cout<<"Congratulations!";
return 0;
}else{
n-=time;
v.push_back(s);
}
}
}
cout<<"Unfortunately.";
return 0;
}