T4310 祖玛游戏
2024-08-30 10:02:26
题目描述
祖玛是一款曾经风靡全球的游戏,其玩法是:在一条轨道上初始排列着若干
个彩色珠子,其中任意三个相邻的珠子不会完全同色。此后,你可以发射珠子到
轨道上并加入原有序列中。一旦有三个或更多同色的珠子变成相邻,它们就会立
即消失。这类消除现象可能会连锁式发生,其间你将暂时不能发射珠子。
开发商最近准备为玩家写一个游戏过程的回放工具。 他们已经在游戏内完成
了过程记录的功能,而回放功能的实现则委托你来完成。
游戏过程的记录中,首先是轨道上初始的珠子序列,然后是玩家接下来所做
的一系列操作。你的任务是,在各次操作之后及时计算出新的珠子序列。
输入输出格式
输入格式:
第一行是一个由大写字母'A'~'Z'组成的字符串, 表示轨道上初始的珠子序列,
不同的字母表示不同的颜色。
第二行是一个数字n,表示整个回放过程共有n次操作。
接下来的n行依次对应于各次操作。每次操作由一个数字k和一个大写字母∑
描述, 以空格分隔。 其中, ∑为新珠子的颜色。 若插入前共有m颗珠子, 则k ∈ [0,m]
表示新珠子嵌入之后(尚未发生消除之前)在轨道上的位序。
输出格式:
输出共n行,依次给出各次操作(及可能随即发生的消除现象)之后轨道上
的珠子序列.
如果轨道上已没有珠子,则以“-”表示。
输入输出样例
输入样例#1:
ACCBA
5
1 B
0 A
2 B
4 C
0 A
输出样例#1:
ABCCBA
AABCCBA
AABBCCBA
-
A
说明
100%的数据满足1 ≤ n ≤ 10^3 ,0 ≤ m ≤ 2 × 10^3 。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int where;
int flag=;
string c;
string a;
int n;
void pd()
{
int tot=;
do
{
flag=;
tot=;
int h=where-,t=where+,now=where;
while(a[h]==a[now]&&h>=)
{
tot++;
h--;
}
h++;
while(a[t]==a[now]&&t<a.size())
{
tot++;
t++;
}
t--;
if(tot>=)
{
//cout<<endl<<a<<"******"<<endl;
a.erase(h,tot);
flag=;
//cout<<endl<<a<<"-------"<<endl;
}
where=h;
}while(flag==); }
int main()
{
getline(cin,a);
scanf("%d",&n);
while(n--)
{
cin>>where>>c;
a.insert(where,c);
pd();
if(a.size()==)
cout<<"-"<<endl;
else cout<<a<<endl;
}
return ;
}
最新文章
- Mysql修改root密码
- mysql主从复制+读写分离 菜鸟入门
- iOS开发拓展篇—音频处理(音乐播放器4)
- HBase的快照技术
- 【Linux】浅谈I/O模型
- 桂电在linux环境下使用出校器
- Maximum Product of Word Lengths
- ORA-04031 With Leak in ";OBJ STAT MEMO"; Allocations Seen in V$SGASTAT on 10.2.0.5 (文档 ID 1350050.1)
- SQL Server 2008 R2 找不到 Install SQL Server Profiler 找不到 事件探查器 解决
- 3.RxJava详解
- 在Android studio模拟器中运行apk文件
- node八-核心模块、包
- Pycharm永久激活方式
- windows下bat批处理执行sql语句__Mysql
- jpa 联表查询 返回自定义对象 hql语法 原生sql 语法 1.11.9版本
- Tensorflow张量
- 读O目标KR关键结果的一些个人理解
- 使用Phantom omni力反馈设备控制机器人
- python中文件变化监控-watchdog
- c++类成员函数重载常量与非常量版本时避免代码重复的一种方法