90分求助,测试点9始终过不了,大佬们帮我看看!
测试点9输入:
3 8 2
0-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90
#include<iostream>
#include<cstring>
using namespace std;
/*
1 2 1
abcs-w1234-9s-4zz
*/
string s;
bool flag=false;
int main()
{
int p1,p2,p3;
cin>>p1>>p2>>p3;
cin>>s;
for(int i=0;i<s.size();i++)
{
if(s[i]!='-')
{
flag=true;
}
if(s[i]=='-'&&flag)
{
if(s[i-1]-48<10&&s[i+1]-48>10)
{
cout<<'-';
continue;
}
if(s[i-1]<s[i+1])
{
if(p3==1)
{
if(p1==1)
{
for(int j=s[i-1]+1;j<s[i+1];j++)
{
for(int k=1;k<=p2;k++)
{
if(s[i-1]-48>10)
{
if(j<91)
{
cout<<char(j+32);
}
else
{
cout<<char(j);
}
}
else
{
cout<<j-48;
}
}
}
}
if(p1==2)
{
for(int j=s[i-1]+1;j<s[i+1];j++)
{
for(int k=1;k<=p2;k++)
{
if(s[i-1]-48>9)
{
if(j>91)
{
cout<<char(j-32);
}
else
{
cout<<char(j);
}
}
else
{
cout<<j-48;
}
}
}
}
if(p1==3)
{
for(int j=s[i-1]+1;j<s[i+1];j++)
{
for(int k=1;k<=p2;k++)
{
cout<<'*';
}
}
}
}
if(p3==2)
{
if(p1==1)
{
for(int j=s[j-1]-1;j>s[i-1];j--)
{
for(int k=1;k<=p2;k++)
{
if(s[i-1]-48>9)
{
if(j<91)
{
cout<<char(j+32);
}
else
{
cout<<char(j);
}
}
else
{
cout<<j-48;
}
}
}
}
if(p1==2)
{
for(int j=s[i+1]-1;j>s[i-1];j--)
{
for(int k=1;k<=p2;k++)
{
if(s[i-1]-48>10)
{
if(j>91)
{
cout<<char(j-32);
}
else
{
cout<<char(j);
}
}
else
{
cout<<j-48;
}
}
}
}
if(p1==3)
{
for(int j=s[i-1]+1;j<s[j+1];j++)
{
for(int i=1;i<=p2;i++)
{
cout<<'*';
}
}
}
}
}
else
{
cout<<'-';
}
}
else
{
cout<<s[i];
}
}
return 0;
}