yyy loves Easter_Egg I(恶心的字符串模拟)
题目背景
Soha的出题效率着实让人大吃一惊。OI,数学,化学的题目都出好了,物理的题还没有一道。于是,Huntfire,absi2011,redbag对soha进行轮番炸,准备炸到soha出来,不料,人群中冲出了个kkksc03……
题目描述
yyy loves OI(Huntfire),yyy loves Maths(redbag),yyy loves Chemistry(absi2011)对yyy loves Physics(soha)进行轮番炸,轰炸按照顺序进行,顺序为Huntfire,redbag,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"
思路:
恶心到吐
数据还是在windows下出的
换行符是\r\n
坑死我了
按题意模拟即可
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <bitset>
#include <queue>
#include <cstdlib>
#include <algorithm>
#define rii register int i
#define rij register int j
using namespace std;
char zha[],name[],xl[],at[];
int lzha,lname,lxl;
int bnt;
int main()
{
// freopen("k.in","r",stdin);
char c;
while()
{
lname=;
bnt++;
lxl=;
int wz;
while(~scanf("%c",&c))
{
if(c==||c==)
{
scanf("\n");
break;
}
lxl++;
xl[lxl]=c;
}
int kkk=;
for(rii=;i<=lxl;i++)
{
if(xl[i]=='@')
{
kkk++;
}
}
if(lxl==)
{
break;
}
for(rii=;i<=lxl;i++)
{
if(xl[i]==':')
{
wz=i+;
break;
}
lname++;
name[lname]=xl[i];
}
if(bnt!=)
{
if(lzha+==lname)
{
int dp=;
for(rii=;i<=lzha;i++)
{
if(zha[i]!=name[i])
{
dp=;
break;
}
}
if(dp==)
{
cout<<"Successful @";
for(rii=;i<=lname;i++)
{
putchar(name[i]);
}
cout<<"attempt";
return ;
}
}
}
int lat=,pd=,cnt=;
for(rii=wz;i<=lxl;i++)
{
if(xl[i]=='@')
{
pd=;
continue;
}
if((xl[i]==' '||xl[i]==)&&pd==)
{
cnt++;
}
if(cnt>=)
{
wz=i+;
if(xl[i]==)
{
wz++;
}
break;
}
if(pd==)
{
lat++;
at[lat]=xl[i];
}
}
if((lat!=lzha||pd==||kkk>)&&bnt!=)
{
cout<<"Unsuccessful @";
for(rii=;i<=lzha;i++)
{
putchar(zha[i]);
}
putchar(' ');
cout<<"attempt";
puts("");
cout<<bnt<<endl;
for(rii=;i<=lname;i++)
{
putchar(name[i]);
}
return ;
}
if(lat==lzha&&bnt!=)
{
for(rii=;i<=lat;i++)
{
if(at[i]!=zha[i])
{
cout<<"Unsuccessful @";
for(rii=;i<=lzha;i++)
{
putchar(zha[i]);
}
putchar(' ');
cout<<"attempt";
puts("");
cout<<bnt<<endl;
for(rii=;i<=lname-;i++)
{
putchar(name[i]);
}
return ;
}
}
}
if(bnt==)
{
lzha=lat;
for(rii=;i<=lat;i++)
{
zha[i]=at[i];
}
}
}
// puts("kkk");
bnt--;
cout<<"Unsuccessful @";
for(rii=;i<=lzha;i++)
{
putchar(zha[i]);
}
puts(" attempt");
cout<<bnt<<endl;
puts("Good Queue Shape");
}
yyy loves Easter_Egg I(恶心的字符串模拟)的更多相关文章
- 洛谷 P1580 yyy loves Easter_Egg I
洛谷 P1580 yyy loves Easter_Egg I 题解: 队列+字符串 #include <cstdio> #include <string> #include ...
- 【洛谷1580】yyy loves Easter_Egg I(字符串处理题)
点此看题面 大致题意: 略.(一道模拟题,自己去看题面吧) 几个字符数组函数 纯粹是一道字符串处理题,就当是学了一下各种与字符数组相关的函数吧! \(gets()\):这个是比较常用的函数,就是读入一 ...
- [洛谷1580]yyy loves Easter_Egg I
题目背景 Soha的出题效率着实让人大吃一惊.OI,数学,化学的题目都出好了,物理的题还没有一道.于是,Huntfire,absi2011,lanlan对soha进行轮番炸,准备炸到soha出来,不料 ...
- [P1580] yyy loves Easter_Egg I
Link: P1580 传送门 Solution: 拿来练练字符串的读入: 1.$gets()$相当于$c++$中的$getline()$,但返回值为指针!(无数据时为NULL) (都读入换行符,并将 ...
- [洛谷P1580]yyy loves Easter_Egg I
题目大意:很多人@一个人,如果那个人忍不住说话了,就轰炸成功,如果那个人没说话或者别的人没有@他或@很多个人,则轰炸失败.(具体见原题) 解题思路:字符串处理,好好用sscanf即可(细节见代码). ...
- 题解 洛谷 P1580 【yyy loves Easter_Egg I】
一言不合上代码: #include<cstdio> #include<cstring> ],bz[],dmz[]; int maohao,xf,ls,sss,lll,xxf,x ...
- 用字符串模拟两个大数相加——java实现
问题: 大数相加不能直接使用基本的int类型,因为int可以表示的整数有限,不能满足大数的要求.可以使用字符串来表示大数,模拟大数相加的过程. 思路: 1.反转两个字符串,便于从低位到高位相加和最高位 ...
- HDU-3787(字符串模拟)
Problem Description 给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号","隔开.现在请计算A+B的结果,并以正常形式输出. Input 输入包含 ...
- 洛谷P2397 yyy loves Maths VI (mode)
P2397 yyy loves Maths VI (mode) 题目背景 自动上次redbag用加法好好的刁难过了yyy同学以后,yyy十分愤怒.他还击给了redbag一题,但是这题他惊讶的发现自己居 ...
随机推荐
- Ubuntu 17.04 upgrade to 17.10
Just try sudo do-release-upgrade if you get this An upgrade from 'zesty' to 'bionic' is not support ...
- 使用MDScratchImageView实现刮奖效果
使用MDScratchImageView实现刮奖效果 https://github.com/moqod/iOS-Scratch-n-See 最终效果: 其实这是使用了别人的东西而已:) 源码: // ...
- Nginx学习---企业级nginx环境搭建
1.1. nginx安装环境 1.系统要求 nginx是C语言开发,建议在linux上运行,本教程使用Centos6.5作为安装环境. 1-1 安装 GCC 源码安装nginx需要依赖gcc环境,需要 ...
- Linux 下Shell的学习2
0. 查看帮助(比如内置功能) man bash -->变量处理大全 1.-计算变量长度的不同方法及不同方法的耗时对比 尽可能的用内置的命令处理,速度快 time ...
- PTA | Maximum Subsequence Sum
Given a sequence of K integers { N1, N2, ..., NK }. A continuous subsequence is defined to ...
- 3星|《深度思考:不断逼近问题的本质》:香奈儿前CEO自传
深度思考:不断逼近问题的本质 作者是前香奈儿CEO,主要内容是作者的自传,从家庭说起,一直到卸任香奈儿CEO. 作者出生于上世纪六七十年代的一个美国中西部的犹太家庭,崇尚自由,讨厌标签.高中的一个暑假 ...
- Python定制类(进阶6)
转载请标明出处: http://www.cnblogs.com/why168888/p/6411919.html 本文出自:[Edwin博客园] Python定制类(进阶6) 1. python中什么 ...
- contOS 网络配置
设定VirtualBox虚拟网卡的IP地址(现在设定本地机器网卡IP 192.168.56.1 子网掩码255.255.255.0) 设置虚拟机中的网络设置 在虚拟机中选用host-only网络(注 ...
- CSS样式命名规则
1.样式命名外 套: wrap主导航: mainnav子导航: subnav页 脚: footer整个页面: content页 眉: header页 脚: footer商 标: label标 题: t ...
- 【[JSOI2007]建筑抢修】
各种瞎写 之后也不知道为什么就过了 刚看到这道题感觉确实是不会的,因为我贪心太差了\(QAQ\) 之后就随便\(yy\)呗 发现首先我们得排一下序,以\(t2\)也就是建筑的损坏时间为第一关键字从小到 ...