据说在一座OI桥上,同心锁上显示的文字有着它奇异的呈现方式,需要你把它稍做改变才可解密。每个同心锁上都有3个数据。第一个数据是一个字符串s。第二个数据m表示把s串从m处分为两段,s[1]至s[m-1]为a串,s[m]至最后为b串。第三个数据n表示你需要做改变的方式。第4个数据表示把n处理后的s串每个字母变重复次数p,不用重复则为0。

当n=1时,把s串中所有大写字母改成小写字母,把所有小写字母改成大写字母,然后在后面加上‘Immorta1’;

当n=2时,从s串中删除所有出现的和b一样的子串,然后把所有出现的‘1013’改成‘hh4742’。

当n=3时,在a串部分的|n-m|-1和|n-m|之间插入b串,并删除b串部分。

输入

第一行有一个字符串s(长度不超过1993);

第二行有3个数:m(1<m<s的长度)、n(1、2或3)、p(0<=p<100)。

输出

输出一个字符串,为经过多次变化后最终得到的s。

输入样例 1

MEIYOUwsshujuBYhh4742
14 1 1

输出样例 1

mmeeiiyyoouuWWSSSSHHUUJJUUbbyyHHHH44774422IImmmmoorrttaa11

输入样例 2

oiBYhh4742MEIYOU1013hh4742wsshujuBYhh4742
34 2 0

输出样例 2

oiMEIYOUhh4742hh4742wsshuju

输入样例 3

ipkepk
5 3 3

输出样例 3

iiiippppkkkkppppkkkkeeee

非常好的字符串处理题  比赛的时候用char数组做耗费了好久时间 还没做出来。

注意活用 s.substr(i,j) !!! //为string a 的第i个字符开始的j个字符

体会到了string的强大
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<cstring>
#include<iostream>
using namespace std;
//input
#define RI(n) scanf("%d",&(n))
#define RII(n,m) scanf("%d%d",&n,&m);
#define RIII(n,m,k) scanf("%d%d%d",&n,&m,&k)
#define RS(s) scanf("%s",s)
#define LL long long
#define REP(i,N) for(int i=0;i<(N);i++)
#define CLR(A,v) memset(A,v,sizeof A)
//////////////////////////////////
#define N 2000+5
string s,ans;
int main()
{
int m,n,cnt;
cin>>s;
cin>>m>>n>>cnt;
string a=s.substr(,m-);
string b=s.substr(m-,s.size()-m+);
if(n==)
{
REP(i,s.size())
{
if(islower(s[i]))s[i]-=;
else if(isupper(s[i]))s[i]+=;
}
ans=s+"Immorta1";
}
else if(n==)
{
int lens=s.size();
int lenb=b.size();
int i=;
string temp;
while(i<lens)
{
if(s.substr(i,lenb)==b)i+=lenb;
else temp+=s[i++];
}
i=;
while(i<temp.size())
{
if(temp.substr(i,)=="")ans+="hh4742",i+=;
else ans+=temp[i++];
}
}
else
{
int k=abs(n-m)-;
string l=a.substr(,k);
string r=a.substr(k,a.size()-k);
ans=l+b+r;
} REP(i,ans.size())
for(int j=;j<=cnt;j++)
cout<<ans[i];
printf("\n");
}

最新文章

  1. 一起学微软Power BI系列-官方文档-入门指南(1)Power BI初步介绍
  2. Oracle常用语句集合
  3. sax 解析 xml
  4. PHP Fatal error: Call to undefined function mb_substr()
  5. SQL调优
  6. HTML&amp;CSS----练习做网页
  7. 解决ArcGIS API for Silverlight 加载地图的内外网访问问题
  8. 8套迷人精致的CSS3 3D按钮动画
  9. CreateEvent、SetEvent、ResetEvent和WaitForSingleObject
  10. 30分钟掌握 C#6
  11. (转载)VB 查询Oracle中blob类型字段,并且把blob中的图片以流的方式显示在Image上
  12. this与super
  13. Vuejs——(12)组件——动态组件
  14. 【linux】centos6.9安装gearman
  15. Revit API创建房间
  16. c#基础思维导图
  17. Visual Studio Code 使用
  18. Aasible中cryptography兼容性报错解决办法
  19. sonarqube 5.6
  20. 解决:VS2010 调试器无法继续继续运行该进程,无法启动调试

热门文章

  1. Oracle中对number类型数据to_char()出现各位少0,或者值为###的处理
  2. BZOJ 4720 [Noip2016]换教室
  3. ctrl+E 快速显示当前打开的编辑列表
  4. UiAutomator2.0入门
  5. SQL Server 2012中LEAD函数简单分析
  6. Docker应用五:使用Dockerfile部署MongoDB
  7. Tomcat权威指南-读书摘要系列6
  8. C语言复习---获取最大公约数(辗转相除法和更相减损法)
  9. SCI写作经典替换词
  10. 用Emacs将文件加密保存