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