1 solutions

  • 0
    @ 2025-11-5 16:40:52

    C++ :

    #include<iostream>
    #include<cstring>
    using namespace std;
    int p1,p2,p3;
    string s;
    bool f=false;
    void e1(int i);
    void e2(int i,int x,int y);
    void in();
    void out();
    int main()
    {
    	in();
    	int len=s.size();
    	for(int i=1;i<=len;i++)
    	{
    		if(s[i-1]=='-')
    		{
    			e1(i);
    		}
    		else
    		{
    			cout<<s[i-1];
    		}
    	}
    	return 0;
    }
    void in(){
    	cin>>p1>>p2>>p3;
    	cin>>s;
    }
    void e1(int i){
    	int x=s[i]-s[i-2];
    	if(x>0)
    	{
    		if(isalpha(s[i])&&isalpha(s[i-2]))
    		{
    			if(x>1)
    			{
    				e2(i,x,1);
    			}
    		}
    		else
    		{
    			if(isdigit(s[i])&&isdigit(s[i-2]))
    			{
    				if(x>1)
    				{
    					e2(i,x,2);
    				}
    			}
    			else
    			{
    				cout<<'-';
    			}
    		}
    	}
    	else
    	{
    		cout<<'-';
    	}
    }
    void e2(int i,int x,int y){
    	if(p3==1)//zhengxu
    	{
    		if(y==1)//zimu
    		{
    			if(p1==1)
    			{
    				for(int j=s[i-2]+1;j<s[i];j++)
    				{
    					for(int k=1;k<=p2;k++)
    					{
    						cout<<char(j);
    					}
    				}
    			}
    			if(p1==2)
    			{
    				for(int j=s[i-2]+1;j<s[i];j++)
    				{
    					for(int k=1;k<=p2;k++)
    					{
    						cout<<char(j-32);
    					}
    				}
    			}
    			if(p1==3)
    			{
    				for(int j=1;j<=(x-1)*p2;j++)
    				{
    					cout<<'*';
    				}
    			}
    		}
    		if(y==2)//feizimu
    		{
    			if(p1==3)
    			{
    				for(int j=1;j<=(x-1)*p2;j++)
    				{
    					cout<<'*';
    				}
    			}
    			else
    			{
    				for(int j=s[i-2]+1;j<s[i];j++)
    				{
    					for(int k=1;k<=p2;k++)
    					{
    						cout<<char(j);
    					}
    				}
    			}
    		}
    	}
    	else//daoxu
    	{
    		if(y==1)//zimu
    		{
    			if(p1==1)
    			{
    				for(int j=s[i]-1;j>s[i-2];j--)
    				{
    					for(int k=1;k<=p2;k++)
    					{
    						cout<<char(j);
    					}
    				}
    			}
    			if(p1==2)
    			{
    				for(int j=s[i]-1;j>s[i-2];j--)
    				{
    					for(int k=1;k<=p2;k++)
    					{
    						cout<<char(j-32);
    					}
    				}
    			}
    			if(p1==3)
    			{
    				for(int j=1;j<=(x-1)*p2;j++)
    				{
    					cout<<'*';
    				}
    			}
    		}
    		if(y==2)//feizimu
    		{
    			if(p1==3)
    			{
    				for(int j=1;j<=(x-1)*p2;j++)
    				{
    					cout<<'*';
    				}
    			}
    			else
    			{
    				for(int j=s[i]-1;j>s[i-2];j--)
    				{
    					for(int k=1;k<=p2;k++)
    					{
    						cout<<char(j);
    					}
    				}
    			}
    		}
    	}
    }
    
    
    • 1

    Information

    ID
    17929
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By