1 条题解

  • 1
    @ 2025-1-15 20:53:29
    #include<bits/stdc++.h>
    using namespace std;
    int n, p;
    bool N = false;//用于存南蛮入侵
    string  a[1145141];//用于存牌堆
    bool check(int x) {//遇到闪时往后找P-1张牌
    	for (int i = x; i <= x + p - 1; i++)
    		if (a[i] == "zb")
    			return true;
    	return false;
    }
    int main() {
    
    	int pa;
    	cin >> pa >> p;
    	for (int i = 1; i <= pa; i++)
    		cin >> a[i];//读入牌堆
    	for (int i = 1; i <= pa; i++) {
    		if (a[i] == "zb") {//遇到丈八输出
    			printf("这益州牧我可是当定了");
    			return 1;
    		}
    		if (a[i] == "N") {//存储南蛮
    			N = true;
    		}
    		if (a[i] == "S" && N == true)//遇到闪时撤回这一张牌然后开南蛮
    		{
    			if (check(i-1)) {
    				printf("这益州牧我可是当定了");//有丈八
    				return 1;
    			} else {
    				printf("背疮难治,世子难继。");//无丈八
    				return 1;
    			}
    		}
    		if(a[i]=="S")//遇到闪无南蛮
    		{
    		printf("背疮难治,世子难继。");
    		return 1;	
    		}
    		if (pa - i <= p - 1 && N == true) {如果牌堆数少于p-1,开南蛮
    			printf("这益州牧我可是当定了");
    			return 1;
    		}
    	}
    
    	printf("这益州牧我可是当定了");//没有丈八和闪
    	return 1;
    }
    
    • 1

    信息

    ID
    4
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    2
    已通过
    2
    上传者