讨论 / 轻松AC
fyc 2016-03-15 06:43:48
点我顶贴 收藏 删除
#include<iostream>

#include<cstring>

#include<cstdio>

using namespace std;

char str[10000];

char whh[10000];

int op,p1,p2,p3;

void work(char ll,char rr)

{

char l=(char)((int)ll+1); char r=(char)((int)rr-1);

if((ll>='0')&&(ll<='9')&&(rr>='0')&&(rr<='9')&&(ll<rr))

{

if(l==rr)

{

return;

}

if((p1==1)||(p1==2))

{

if(p3==1)

{

for(char x=l;x<=r;x++)

{

for(int j=1;j<=p2;j++)

{

op++;

whh[op]=x;

}

}

}

if(p3==2)

{

for(char x=r;x>=l;x--)

{

for(int j=1;j<=p2;j++)

{

op++;

whh[op]=x;

}

}

}

}

else if(p1==3)

{

for(char x=l;x<=r;x++)

{

for(int j=1;j<=p2;j++)

{

op++;

whh[op]='*';

}

}

}

}

else if((ll>='a')&&(ll<='z')&&(rr>='a')&&(rr<='z')&&(ll<rr))

{

if(l==rr)

{

return;

}

if(p1==1)

{

if(p3==1)

{

for(char x=l;x<=r;x++)

{

for(int j=1;j<=p2;j++)

{

op++;

whh[op]=x;

}

}

}

if(p3==2)

{

for(char x=r;x>=l;x--)

{

for(int j=1;j<=p2;j++)

{

op++;

whh[op]=x;

}

}

}

}

else if(p1==2)

{

if(p3==1)

{

for(char x=l;x<=r;x++)

{

for(int j=1;j<=p2;j++)

{

op++;

whh[op]=(char)((int)x-32);

}

}

}

if(p3==2)

{

for(char x=r;x>=l;x--)

{

for(int j=1;j<=p2;j++)

{

op++;

whh[op]=(char)((int)x-32);

}

}

}

}

else if(p1==3)

{

for(char x=l;x<=r;x++)

{

for(int j=1;j<=p2;j++)

{

op++;

whh[op]='*';

}

}

}

}

else

{

op++;

whh[op]='-';

return;

}

}

int main()

{

scanf("%d%d%d",&p1,&p2,&p3);

scanf("%s",str);

int len=strlen(str);

for (int i=0;i<=len;i++)

{

if(str[i]!='-')

{

op++;//op 为答案指针

whh[op]=str[i];//whh为答案

}

else

{

work(str[i-1],str[i+1]);

}

}

for (int i=1;i<=op;i++)

{

printf("%c",whh[i]);

}

return 0;

}

查看更多回复
提交回复