1 条题解

  • 0
    @ 2025-8-24 23:12:19

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Elysia
    爱门 我的主页:https://www.luogu.com.cn/article/ggsu5e67

    搬运于2025-08-24 23:12:19,当前版本为作者最后更新于2025-04-05 19:05:57,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    字符串的入门题。

    根据题目要求一个 flag 的长度至少是 66,如果这个字符串长度小于 66 可以直接忽略掉。

    然后我们枚举字符串从第 11 个字符到倒数第 55 个字符,如果从这个字符开始连续 55 个字符依次是 flag{,就进入下一层判断。

    下一层判断是从 flag{ 右边一个字符开始,如果找到一个 { 就说明后面不可能有合法的 flag 了,直接跳过。如果找到 },就说明这是一个合法的 flag,输出就行。

    最后如果没有合法的 flag,输出 NOT FOUND

    #include<iostream>
    using namespace std;
    int main(){
        string s;
        cin>>s;
        if(s.size()<6){
            cout<<"NOT FOUND";
            return 0;
        }
        for(int i=0;i<=s.size()-5;i++){
            if(s.substr(i,5)=="flag{"){
                for(int j=i+5;j<s.size();j++){
                    if(s[j]=='{')break;
                    if(s[j]=='}'){
                        cout<<s.substr(i,j-i+1);
                        return 0;
                    }
                }
            }
        }
        cout<<"NOT FOUND";
    }
    
    • 1

    信息

    ID
    11791
    时间
    1000ms
    内存
    512MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者