zoukankan      html  css  js  c++  java
  • 题解 Luogu P1580 【yyy loves Easter_Egg I】

    一言不合上代码:

    #include<cstdio>
    #include<cstring>
    char s[100001],bz[100001],dmz[100001];
    int maohao,xf,ls,sss,lll,xxf,xxxf;
    int n,d,a[1000001],i,j,k,f,cjf,l;
    int main() {
        ls=1;
        gets(s);//第一个要特殊输入,以便寻找队列要@的人
        l=strlen(s);
        if(s[l-1]=='/r')s[l-1]=' ';
        for(i=10; i<l; i++) {
            if(f) {
                k=0;
                for(j=i; j<l; j++) {//记录人名
                    if(s[j]==' ')xxf++;
                    if(xxf==3||s[j]==13)break;//特判符
                    bz[lll]=s[j];
                    lll++;
                }
                break;
            }
            if(s[i]=='@')f=1;
        }
        while(gets(s)) {//输到没有为止
            l=strlen(s);
            if(l<2)break;//以防结尾回车
            if(s[l-1]=='/r')s[l-1]=' ';
            ls++;
            if(cjf==0&&xf==0) {
                xxxf=0;
                char mz[100001]="yyy loves ";
                sss=10;
                j=0;
                f=0;
                l=strlen(s);
                for(i=0; i<l; i++) {
                    if(s[i+1]==':') {
                        maohao=i;
                        break;
                    }
                    if(s[i]==bz[j])j++;
                    mz[i]=s[i];
                    sss++;
                }
                if(j==lll) {//油炸成功
                    cjf=1;
                    continue;
                }
                for(i=maohao+1; i<l; i++) {
                    if(f) {
                        k=0;
                        for(j=i; j<l; j++) {
                            if(s[j]==bz[k])k++;
                            else break;
                        }
                        if(k!=lll)xf=ls;//队列被破坏
                        break;
                    }
                    if(s[i]=='@')f=1;
                }
                if(f==0)xf=ls;
                for(i=0; i<sss; i++)//录下当前说话的人的人名
                    dmz[i]=mz[i];
                for(i=0; i<l; i++)if(s[i]=='@')xxxf++;
                if(xxxf>1) {//判断@个数
                    xf=ls;
                    break;
                }
            }
        }
        if(cjf)printf("Successful @%s attempt",bz);//输出
        else if(xf) {
            printf("Unsuccessful @%s attempt\n",bz);
            printf("%d\n",xf);
            puts(dmz);
        } else {
            printf("Unsuccessful @%s attempt\n",bz);
            printf("%d\n",ls);
            puts("Good Queue Shape");
        }
        return 0;
    }

    其实这道题并没有多难,只是许多坑罢了,要注意

    (本人早期作品,勿喷)

  • 相关阅读:
    10055
    国外程序员推荐:每个程序员都应该读的非编程书
    Volume 0. Getting Started
    如何成为一名 Google 软件工程师?【Google招聘信息】作者: 丁鑫哲
    毕设-家校通
    如何快速创建数据库连接字符串
    LeetCode day13
    LeetCode day12
    LeetCode day11
    LeetCode day10 Called it
  • 原文地址:https://www.cnblogs.com/wyzwyz/p/10858909.html
Copyright © 2011-2022 走看看