看着挺吓人的题面,但其实并不难就是个模拟题(阅读理解题)
题意:
现在两个人轮流玩游戏。两个人分别有一个长度为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; }