比赛 |
练习赛 |
评测结果 |
AAAAAAAAAA |
题目名称 |
字符串的展开 |
最终得分 |
100 |
用户昵称 |
gsj.cpp |
运行时间 |
0.006 s |
代码语言 |
C++ |
内存使用 |
13.66 MiB |
提交时间 |
2019-05-22 14:09:53 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
char a[105];int p1,p2,p3;
int main()
{
freopen("expand.in","r",stdin);
freopen("expand.out","w",stdout);
cin>>p1>>p2>>p3;
cin>>a;
for(int i=0;i<strlen(a);i++)
{
if((a[i]>='0'&&a[i]<='9')||(a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))cout<<a[i];
if(a[i]=='-'&&a[i+1]=='-'&&i==0)cout<<'-'<<'-',i++;
if(a[i]=='-'&&i==0)cout<<'-';
else if(a[i]=='-'&&a[i+1]=='-')cout<<'-'<<'-',i++;
else if(a[i]=='-'&&a[i-1]>='0'&&a[i-1]<='9'&&a[i+1]>='a'&&a[i+1]<='z')cout<<'-';
else if(a[i]=='-')
{
if(a[i-1]>=a[i+1]||(a[i-1]=='9'&&a[i+1]=='a'))cout<<'-';
else if(a[i-1]<a[i+1])
{
if(p1==1||(p1==2&&a[i-1]>='0'&&a[i+1]<='9'&&a[i-1]<='9'&&a[i+1]>='0'))
{
if(p3==1)
{
if(a[i-1]>='0'&&a[i-1]<='9')
for(int j=1;;j++)
{
if(a[i-1]+j<a[i+1])
{
for(int k=1;k<=p2;k++)
{
cout<<char(a[i-1]+j);
}
}
if(a[i-1]+j>=a[i+1]||a[i-1]+j>='9')break;
}
if(a[i-1]>='a'&&a[i-1]<='z')
for(int j=1;;j++)
{
if(a[i-1]+j<a[i+1])
{
for(int k=1;k<=p2;k++)
{
cout<<char(a[i-1]+j);
}
}
if(a[i-1]+j>=a[i+1]||a[i-1]+j>='z')break;
}
}
if(p3==2)
{if(a[i+1]>='a'&&a[i+1]<='z')
for(int j=1;j<=a[i+1]-a[i-1]-1;j++)
{
if(a[i+1]-j>a[i-1])
{
for(int k=1;k<=p2;k++)
{
cout<<char(a[i+1]-j);
}
}
if(a[i+1]-j<=a[i-1]||a[i+1]-j<='a')break;
}
if(a[i+1]>='0'&&a[i+1]<='9')
{
for(int j=1;j<=a[i+1]-a[i-1]-1;j++)
{
if(a[i+1]-j>a[i-1])
{
for(int k=1;k<=p2;k++)
{
cout<<char(a[i+1]-j);
}
}
if(a[i+1]-j<=a[i-1]||a[i+1]-j<='0')break;
}
}
}
}
if(p1==2&&a[i-1]>='a'&&a[i+1]<='z'&&a[i-1]<='z'&&a[i+1]>='a')
{
if(p3==1)
{
for(int j=1;;j++)
{
if(a[i-1]+j<a[i+1])
{
for(int k=1;k<=p2;k++)
{
cout<<char(a[i-1]+j-32);
}
}
if(a[i-1]+j>=a[i+1])break;
}
}
if(p3==2)
{
for(int j=1;j<=a[i+1]-a[i-1]-1;j++)
{
if(a[i+1]-j>a[i-1])
{
for(int k=1;k<=p2;k++)
{
cout<<char(a[i+1]-j-32);
}
}
if(a[i+1]-j<=a[i-1])break;
}
}
}
if(p1==2&&a[i-1]>='A'&&a[i+1]<='Z'&&a[i-1]<='Z'&&a[i+1]>='A')
{
if(p3==1)
{
for(int j=1;;j++)
{
if(a[i-1]+j<a[i+1])
{
for(int k=1;k<=p2;k++)
{
cout<<char(a[i-1]+j+32);
}
}
if(a[i-1]+j>=a[i+1])break;
}
}
if(p3==2)
{
for(int j=1;j<=a[i+1]-a[i-1]-1;j++)
{
if(a[i+1]-j>a[i-1])
{
for(int k=1;k<=p2;k++)
{
cout<<char(a[i+1]-j+32);
}
}
if(a[i+1]-j<=a[i-1])break;
}
}
}
if(p1==3)
{if(a[i-1]>='0'&&a[i-1]<='9')
for(int j=1;;j++)
{
if(a[i-1]+j<a[i+1])
{
for(int k=1;k<=p2;k++)
{
cout<<"*";
}
}
if(a[i-1]+j>=a[i+1]||a[i-1]+j>='9')break;
}
if(a[i-1]>='a'&&a[i-1]<='z')
for(int j=1;;j++)
{
if(a[i-1]+j<a[i+1])
{
for(int k=1;k<=p2;k++)
{
cout<<"*";
}
}
if(a[i-1]+j>=a[i+1]||a[i-1]+j>='z')break;
}
}
}
}
}
return 0;
}