题目背景

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;
begin
writeln('Successful @',id,' attempt');
halt;
end;
//at successfully procedure ending;
begin
writeln('Unsuccessful @',id,' attempt');
writeln(sum-);
writeln('Good Queue Shape');
halt;
end;
//to the end procedure prime;
begin
writeln('Unsuccessful @',id,' attempt');
writeln(sum);
writeln(xx);
halt;
end;
//break begin
readln(s);
x:=pos(':',s);
delete(s,,x+);
id:='yyy loves ';
delete(s,,);
a:=pos(' ',s);
ss:=copy(s,,a-);
id:=id+ss;
n:=length(id);
delete(s,,n-);
sum:=;
while true do
begin
inc(sum);
readln(s1);
if s1='' then ending;
x:=pos(':',s1);
xx:=copy(s1,,x-);
if xx=id+' ' then success;
a:=pos('@',s1);
if a= then prime;
s1[a]:='*';
delete(s1,,x+);
iid:='yyy loves ';
delete(s1,,);
a:=pos(' ',s1);
ss:=copy(s1,,a-);
iid:=iid+ss;
if (iid<>id) then prime;
a:=pos('@',s1);
if a<> then
begin
delete(s1,,x+);
iid:='yyy loves ';
delete(s1,,);
a:=pos(' ',s1);
ss:=copy(s1,,a-);
iid:=iid+ss;
if iid<>id then prime;
end;
end;
end.

STD

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

[洛谷1580]yyy loves Easter_Egg I的更多相关文章

  1. 洛谷 P1580 yyy loves Easter_Egg I

    洛谷 P1580 yyy loves Easter_Egg I 题解: 队列+字符串 #include <cstdio> #include <string> #include ...

  2. [洛谷P1580]yyy loves Easter_Egg I

    题目大意:很多人@一个人,如果那个人忍不住说话了,就轰炸成功,如果那个人没说话或者别的人没有@他或@很多个人,则轰炸失败.(具体见原题) 解题思路:字符串处理,好好用sscanf即可(细节见代码). ...

  3. [洛谷2397]yyy loves Maths VI

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

  4. 洛谷P2397 yyy loves Maths VI (mode)

    P2397 yyy loves Maths VI (mode) 题目背景 自动上次redbag用加法好好的刁难过了yyy同学以后,yyy十分愤怒.他还击给了redbag一题,但是这题他惊讶的发现自己居 ...

  5. 洛谷P2396 yyy loves Maths VII

    P2396 yyy loves Maths VII 题目背景 yyy对某些数字有着情有独钟的喜爱,他叫他们为幸运数字;然而他作死太多,所以把自己讨厌的数字成为"厄运数字" 题目描述 ...

  6. 洛谷——P2393 yyy loves Maths II

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

  7. [CF327E]Axis Walking([洛谷P2396]yyy loves Maths VII)

    题目大意:给一个长度为$n(1\leqslant n\leqslant24)$的序列$S$和$k(0\leqslant k\leqslant2)$个数. 求有多少种$S$的排列方式使得其任何一个前缀和 ...

  8. 洛谷 P2393 yyy loves Maths II

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

  9. 【题解】洛谷P2418 yyy loves OI IV

    感觉很是妙啊……这题数次误入歧途...最开始想的二维dp,单调队列优化:无果,卒.于是没忍住看了下标签:暴力枚举?搜索?于是开始想记忆化搜索.以为会有什么很强的剪枝之类的:30分,卒.最后终于回到正道 ...

随机推荐

  1. Winfrom 中 ComboBox 绑定数据后设置选定项问题

    在为 ComboBox 当定数据的时候,如果遇到界面显示需要用文本,而获取选定项的值时需要用数字,我们就很习惯使用 DataSource  来进行绑定. 例如以下代码: List<TextVal ...

  2. WPF自定义控件之仿Win8滚动条--ScrollViewer

    1.说明 自己学习WPF不是很久,现将自己做的一些小项目中用到的自定义控件整理出来,方便以后使用,不尽人意之处,还请多多批评与指导,现在就来实现自定义ScrollViewer仿Win8滚动条 2.效果 ...

  3. MVC5-Scaffolder

    [转]Visual Studio.net 2013 asp.net MVC 5 Scaffolding代码生成向导开源项目 提高开发效率,规范代码编写,最好的方式就是使用简单的设计模式(MVC , R ...

  4. Elasticsearch强大的聚合功能Facet

    在常规数据库中,我们都知道有一个sql就是group,分组.如果主表只有对应的一个列记录的分组的ID,那么还好统计,比如说每本书book表,有一个分类catId,记录是属于哪一类的书,那么直接按照ca ...

  5. Hbase 0.96 比 hbase 0.94的改变

    转载:http://blog.csdn.net/hxpjava1/article/details/20043703 环境: hadoop:hadoop-2.2.0 hbase:hbase-0.96.0 ...

  6. js为链接绑定点击事件并且附带return false;来阻止跳转

    <!DOCTYPE HTML> <html> <head> <meta charset="gb2312" /> <title& ...

  7. SASS、COMPASS 安装指南

    如果你还不知道 SASS 和 COMPASS 是什么,可以参看http://sass-lang.com 和http://compass-style.org,近期可能会更新一篇介绍性的入门教程,但 是本 ...

  8. 一些常用的jQuery插件

    1. X-editable 这个插件能够让你在页面上创建可编辑的元素.它能够使用任何引擎(bootstrap.jquery-ui.jquery),并且包含弹出式和内联模式. 2. Garlic.js ...

  9. 在Unity中高效工作(上)

    原地址:http://www.unity蛮牛.com/thread-19974-1-1.html 编的话:感谢做编程的IT朋友,帮我翻译文章,我又稍稍做了些修改.给点儿掌声哩.欢迎大家多多评论呦. 我 ...

  10. PYTHON多进程样码

    敲了一晚上,留个念想. 发现它和LINUX的C编程差不多,就是作了PYTHON化的语法封装. 以后希望有机会能用上.. A,多进程函数化实现 import multiprocessing import ...