題解 洛谷 P1580 【yyy loves Easter_Egg I】
阿新 • • 發佈:2019-05-13
code clas urn dmz () 說話 clu lov temp
一言不合上代碼:
#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; }
其實這道題並沒有多難,只是許多坑罷了,要註意
(本人早期作品,勿噴)
題解 洛谷 P1580 【yyy loves Easter_Egg I】