题目背景

Soha的出题效率着实让人大吃一惊。OI,数学,化学的题目都出好了,物理的题还没有一道。于是,Huntfire,absi2011,lanlan对soha进行轮番炸,准备炸到soha出来,不料,人群中冲出了个kkksc03……

题目描述



yyy loves OI(Huntfire),yyy loves Maths(lanlan),yyy loves Chemistry(absi2011)对yyy loves Physics(soha)进行轮番炸,轰炸按照顺序进行,顺序为Huntfire,lanlan,absi2011。
现在这一题中吗,我们不考虑太复杂的队形形式。我们认为只要这一句内含有且恰好含有一次@,@的人和上一句话一样就算为队形。
比如以下也视为队形
yyy loves OI : @yyy loves Microelectronic 
yyy loves Maths : @yyy loves Microelectronic 我佩服soha的出题效率
yyy loves OI : @yyy loves Microelectronic +1
yyy loves Chemistry : +1 @yyy loves Microelectronic 
若艾特的人与第一个人不同,就算队形被打破。若这个人在队形被打破之前出来吱声了,或者就是他打破队形了,就算(油)炸成功了。若(油)炸成功,输出“Successful @某某某 attempt”,若队形被破坏先输出“Unsuccessful @某某某 attempt”,再输出队形第一次被破坏的行数与第一次破坏队形的人的id。如果队形一直没被打破,就先输出“Unsuccessful @某某某 attempt”,再输出队形的长度,最后输出"Good Queue Shape"/* yyy loves Microelectronic 是kkksc03*/

输入输出格式

输入格式:

N行,为轰炸开始后的一段消息记录,每行一条消息。消息格式:“消息发送者 + ‘ : ’+消息内容”,每行消息长度不超过1000。(中文用拼音代替了)

输出格式:

若(油)炸成功,输出“Successful @某某某 attempt”,若队形被破坏第一行输出“Unsuccessful @某某某 attempt”,接下来一行输出队形第一次被破坏的行数,第三行输出第一次破坏队形的人的id,如果队形一直没被打破,就先输出“Unsuccessful @某某某 attempt”,再输出队形的长度,最后输出"Good Queue Shape"

输入输出样例

输入样例#1:

yyy loves OI : @yyy loves Physics wo pei fu ni de chu ti xiao lv
yyy loves Maths : @yyy loves Physics wo pei fu ni de chu ti xiao lv
yyy loves Chemistry : @yyy loves Physics wo pei fu ni de chu ti xiao lv
yyy loves Microelectronic : ni men wu liao me
yyy loves OI : @yyy loves Physics wo pei fu ni de chu ti xiao lv

输出样例#1:

Unsuccessful @yyy loves Physics attempt
4
yyy loves Microelectronic

输入样例#2:

yyy loves OI : @yyy loves Physics wo pei fu ni de chu ti xiao lv
yyy loves Maths : @yyy loves Physics wo pei fu ni de chu ti xiao lv
yyy loves Chemistry : @yyy loves Physics wo pei fu ni de chu ti xiao lv
yyy loves OI : @yyy loves Physics wo pei fu ni de chu ti xiao lv
yyy loves Maths : @yyy loves Physics wo pei fu ni de chu ti xiao lv
yyy loves Chemistry : @yyy loves Physics wo pei fu ni de chu ti xiao lv
yyy loves OI : @yyy loves Physics wo pei fu ni de chu ti xiao lv
yyy loves Maths : @yyy loves Physics wo pei fu ni de chu ti xiao lv
yyy loves Chemistry : @yyy loves Physics wo pei fu ni de chu ti xiao lv
yyy loves Physics : ni men gou le 

输出样例#2:

Successful @yyy loves Physics attempt

说明

@yyy loves Physics 我佩服你的出题效率
此题仅吐槽soha,纪念出题者的队形,此队形长达91行。 
对于100%的数据,每行消息长度<=1000
保证行数不超过50000
保证输入文件大小不超过4M
保证第一个说话的一定在艾特某人
保证大家的名字都是yyy loves ____ 的格式
保证每个人说的话中没有":"
保证第一个说话的一定艾特了一个人且只@了一个人
保证第一个说话的一定不会艾特自己
保证文件结束一定有一行空行 方便你判定文件结束
并不保证后面说话的艾特了几个人 然而艾特人数不为一个人视为破坏队形
并不保证后面说话是否会反复艾特同一个人
并不保证被炸的人一定破坏队形
并不保证这一题是或不是压轴题
并不保证这一套比赛存在压轴题
并不保证下一套比赛和这一套比赛一样水
并不保证群里除了这4个人和kkksc以外没有别人了
并不保证你没AC这题的情况下吐槽soha不会出事儿
AC了可以吐槽soha一句,soha不会介意。

思路

  即使你没有保证然而我还是要吐槽,太恶心了这个题,字符串处理的题即使思路清晰,到最后也会被什么空格和各式各样的字符串函数搞得头昏脑涨。这道题我最高可以调到60分,但是我已经考虑到了所有题目描述中可能会有的情况,不管了,贴出源码,有神犇路过还请指教。

var i,j,sum,x,a,n:longint;s,juzi,id,iid,s1,ss,xx:ansistring;procedure success;
beginwriteln('Successful @',id,' attempt');halt;
end;
//at successfullyprocedure ending;
beginwriteln('Unsuccessful @',id,' attempt');writeln(sum-1);writeln('Good Queue Shape');halt;
end;
//to the endprocedure prime;
beginwriteln('Unsuccessful @',id,' attempt');writeln(sum);writeln(xx);halt;
end;
//breakbeginreadln(s);x:=pos(':',s);delete(s,1,x+2);id:='yyy loves ';delete(s,1,10);a:=pos(' ',s);ss:=copy(s,1,a-1);id:=id+ss;n:=length(id);delete(s,1,n-9);sum:=1;while true dobegininc(sum);readln(s1);if s1='' then ending;x:=pos(':',s1);xx:=copy(s1,1,x-1);if xx=id+' '  then success;a:=pos('@',s1);if a=0 then prime;s1[a]:='*';delete(s1,1,x+2);iid:='yyy loves ';delete(s1,1,10);a:=pos(' ',s1);ss:=copy(s1,1,a-1);iid:=iid+ss;if (iid<>id) then prime;a:=pos('@',s1);if a<>0 thenbegindelete(s1,1,x+2);iid:='yyy loves ';delete(s1,1,10);a:=pos(' ',s1);ss:=copy(s1,1,a-1);iid:=iid+ss;if iid<>id then prime;end;end;
end.

View Code

STD

var c,d,e:longint;  //c:队形长度;d:'@'位置;e:b的长度  a,b:ansistring;  //a:输入的字符串;b:@的人  begin    readln(a);    a:=a+' ';    c:=2;    d:=pos('@',a);    b:='yyy loves ';    e:=d+11;    while a[e]<>' ' do begin  //确定b  b:=b+a[e];    inc(e);    end;    b:=b+' ';  //便与判断  e:=length(b);    readln(a);    while a<>'' do begin  //如果@的人出现就输出  if copy(a,1,e)=b then begin    writeln('Successful @'+b+'attempt');    halt;    end;    d:=pos('@',a);    if (copy(a,d+1,e)<>b) and (copy(a,d+1,e)+' '<>b) or (d=0) then begin  //如果 @的不是同一个人 或 没有@人 就输出(特判'@某某某'出现在结尾且无空格的情况)  writeln('Unsuccessful @'+b+'attempt');    writeln(c);    writeln(copy(a,1,pos(':',a)-1));    halt;    end;    delete(a,d,1);  //删除'@'  if pos('@',a)<>0 then begin  //如果还有'@'即@了不止一个人就输出  writeln('Unsuccessful @'+b+'attempt');    writeln(c);    writeln(copy(a,1,pos(':',a)-1));    halt;    end;    readln(a);    inc(c);    end;    writeln('Unsuccessful @'+b+'attempt');  //队形未打破但@的人未出现,输出  writeln(c-1);    writeln('Good Queue Shape');
end.    

View Code

转载于:https://www.cnblogs.com/yangqingli/p/4886929.html

[洛谷1580]yyy loves Easter_Egg I相关推荐

  1. [洛谷2397]yyy loves Maths VI

    题目背景 自动上次redbag用加法好好的刁难过了yyy同学以后,yyy十分愤怒.他还击给了redbag一题,但是这题他惊讶的发现自己居然也不会,所以只好找你 题目描述 他让redbag找众数 他还特 ...

  2. 洛谷——P2393 yyy loves Maths II

    P2393 yyy loves Maths II 题目背景 上次蒟蒻 redbag 可把 yyy 气坏了,yyy 说他只是小学生,蒟蒻 redbag 这次不坑他了. 题目描述 redbag 给了 yy ...

  3. 洛谷P2397 yyy loves Maths VI (mode) 摩尔投票

    求众数的一种方法 不需要内存,排序 每次记录上次加的值以及个数,相等个数+1,不相等就-1 因为众数大于一半 最坏的情况也就是拿一个众数取走一个非众数 最后的结果肯定就是众数 //#pragma co ...

  4. 洛谷P2396 yyy loves Maths VII【状压dp】

    题目:https://www.luogu.org/problemnew/show/P2396 题意:有n个数,每次选择一个表示走$a[i]$步,每个数只能选一次. 最多有两个厄运数字,如果走到了厄运数 ...

  5. [P1580] yyy loves Easter_Egg I

    Link: P1580 传送门 Solution: 拿来练练字符串的读入: 1.$gets()$相当于$c++$中的$getline()$,但返回值为指针!(无数据时为NULL) (都读入换行符,并将 ...

  6. 【Luogu1580】yyy loves Easter_Egg I(纯字符串模拟)

    problem 保持队形(我们认为只要这一句内含有且恰好含有一次@,@的人和上一句话一样就算为队形) 若艾特的人与第一个人不同,就算队形被打破,油炸失败.若这个人在队形被打破之前出来吱声了,或者就是他 ...

  7. 洛谷 4828 Nagisa loves Tomoya 题解

    博客观赏效果更佳](https://lightninguz2.github.io/2019/11/02/洛谷-4828-Nagisa-loves-Tomoya-题解/) 题意简述 给定一个序列aaa, ...

  8. 洛谷P4831 Scarlet loves WenHuaKe

    这道题告诉我们推式子的时候头要够铁. 题意 问一个\(n\times m\)的棋盘,摆上\(n\times 2\)个中国象棋的炮使其两两不能攻击的方案数,对\(998244353\)取模. \((n\ ...

  9. 洛谷 4830 Tomoya loves Nagisa

    博客观赏效果更佳 题意简述 某人考试,他女朋友会帮他作弊.只有一个单选题,有nnn个选项.每次,这个人会选择一个选项,他女朋友帮他排除一个他没选的错误选项.然后他一共有kkk次更换选项的机会.请你求出 ...

  10. 洛谷 U28036 Nagisa loves Tomoya(推式子) 题解

    题目来源: https://www.luogu.org/problemnew/show/U28036 题目描述: 题目描述 可爱的古河渚得到了一个序列.她定义一次操作为 将所有的 a_iai​ 变为  ...

最新文章

  1. python中idx是什么意思_在python中滚动idxmax()?
  2. suse linux 10 下安装sybase15.0.3,SUSE10下安装sybase ASE15.0
  3. 11g oracle xe启动_详解Oracle等待事件的分类、发现及优化
  4. opencv运行出现错误
  5. 解决Eclipse Pydev中import时报错:Unresolved import
  6. Linux下安装DB2_v9.7详细教程
  7. sql server 2016新特性 查询存储(Query Store)的性能影响
  8. LitJson使用中的一些问题
  9. DNK编程 JNI 之 javah
  10. ubuntu16.04安装完后无法上网
  11. 无线渗透(下)—企业级WPA破解
  12. 【Mybatis学习路线】day02mybatis的增删改查操作
  13. android support v13,java – 程序类型已存在:android.support.v13.v...
  14. 小程序 function(res)与(res) =的区别
  15. android 调出键盘表情_Android 显示输入法中的emoji表情以及String字符
  16. 模态综合医疗时间序列数据:REAL-VALUED (MEDICAL) TIME SERIES GENERATION WITH RECURRENT CONDITIONAL GANS
  17. excel python 文字中间横杠_怎么在“excel”中的文字中间划一道横线?
  18. 秉火429笔记之十七 SPI--操作FLASH
  19. 支付宝:APP支付接口2.0(alipay.trade.app.pay)
  20. 隐式图的搜索问题(九宫重排)——实验准备

热门文章

  1. 创建Spring Boot工程 流程 以及基本操作
  2. Zebra_Datepicker
  3. 物联网开源操作系统简介
  4. 用键盘模拟操作来实现另类关机方法
  5. Python3学习笔记_类和对象_20200514/0516
  6. 0-1背包问题,完全背包,多重背包
  7. 个人日常linux常用命令(一)查看进程和磁盘使用情况
  8. 微软“腹黑” 掌握了打败亚马逊AWS的新妙招!
  9. ARM的IP授权模式
  10. python列表、元组、字典、集合的简单操作