看着挺吓人的题面,但其实并不难就是个模拟题(阅读理解题)
题意:
现在两个人轮流玩游戏。两个人分别有一个长度为n的字符串,初始的血量都是m。
每个字符串是每个人的技能连招,第i个字符位置,表示游戏进行到了第i秒。
对于第一个人,第一个字符串如果连续三个字符是“ora” 就会对第二个人扣一滴血。
对于第二个人第二个字符串如果连续四个字符是“muda” 就会对第一个人扣一滴血。
两个人的大招一样。如果字符串是"zawaluduo",那么可以让对方血量清空,如果两个人同时放大招,第二个人速度更快,等于第一个人先挂
现在让根据两个人的剩余血量的相对大小,输出不同的字符串即可。
思路
也没啥思路,就是直接模拟过程即可。
因为大招能清空血量,所以先判断大招。
因为第二个人速度快,所以先判断第二个字符串到此时是不是有大招。当其中一方血量是0时候结束即可。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
int _;cin>>_;
while(_--){
int a,b;cin>>a>>b;
string s,t,str;
cin>>s>>t;
int h1=b,h2=b;
for(int i=0;s[i]&&h1&&h2;i++){
if(i>=8){
str=t.substr(i-8,9);
if(str=="zawaluduo"){
h1=0;
break;
}
str=s.substr(i-8,9);
if(str=="zawaluduo"){
h2=0;break;
}
}
if(i>=2){
str=s.substr(i-2,3);
if(str=="ora"){
h2--;
}
}
if(i>=3){
str=t.substr(i-3,4);
if(str=="muda"){
h1--;
}
}
}
if(h1==h2) cout<<"Kono Dio da"<<endl;
else if(h1>h2) cout<<"Wryyyyy"<<endl;
else cout<<"Hinnjaku"<<endl;
}
return 0;
}

京公网安备 11010502036488号