35分求调,依旧红题,玄一关
查看原帖
35分求调,依旧红题,玄一关
737219
YONEX楼主2024/2/23 12:44

代码有点长,但是思路很清晰

#include<bits/stdc++.h>
#define ll long long 
#define lint long int 
#include<map>
#include<memory>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstdlib>
#include<iostream>
#include<math.h>
#define d double
using namespace std;

//bool check(string x)
//{
//	for(int i=0;i<x.size();i++)
//	{
//		if(x[i]!=-1)
//		{
//			return 0;
//			break;
//		}
//		if(x[i]==-1 and i==x.size()-1)
//		{
//		  return false;
//		}
//	}
//}

int main()
{   
    string a,b;
    int num1=0,num2=0,num3=0,num4=0;
    cin>>a>>b;
    int la,lb;
	int l;int ml;
	string m,n;
    la=a.size();
	lb=b.size();
    ml=max(la,lb);
    
    if(la>lb)
    {
	    l=abs(la-lb);
	    for(int i=0;i<l;i++)
	    {
	    	n[i]='0';
		}
	    for(int i=l;i<=la;i++) 
      {
         n[i]=b[i-1];
	  }
	}
	
    if(la<lb)
	{
	    l=abs(la-lb);
	  for(int i=0;i<l;i++)
	    {
	    	n[i]='0';
		}
	    for(int i=l;i<=lb;i++) 
      {
         n[i]=a[i-1];
	  }
	}
	
	if(la==lb)
	{
		for(int i=0;i<la;i++)
		n[i]=b[i];
	}
	
	for(int i=0;i<=ml;i++)
	cout<<a[i]<<' ';
	cout<<endl;
	for(int i=0;i<=ml;i++)
	cout<<n[i]<<' ';

    for(int i=0;i<ml;i++)
    {
    	if(la>=lb)
    	{
    		if(a[i]>n[i])n[i]=-1;
    		if(n[i]>a[i])a[i]=-1;
		}
		if(lb>la)
    	{
    		if(b[i]>n[i])n[i]=-1;
    		if(n[i]>b[i])b[i]=-1;
		}
	}
	
    	if(la>=lb)
    	{
    		for(int i=0;i<ml;i++)
    		{
    			if(a[i]!=-1)
				{
					num1++;
					cout<<a[i];
				}
//    			if(check(a))
//				{
//					cout<<"YODA";
//				}
			}
			if(num1==0)
			{
			  cout<<"YODA";	
			}
			cout<<endl;
			
    		for(int i=0;i<ml;i++)
    		{
    			if(n[i]!=-1)
				{
					num2++;
					cout<<n[i];
				}
//				if(check(n))
//				{
//					cout<<"YODA";
//				}
			}           
			if(num2==0)
			{
				cout<<"YODA";
			}
		}
            if(lb>la)
    {
    		for(int i=0;i<ml;i++)
    		{
    			if(n[i]!=-1)
				{
					num3++;
				    cout<<n[i];	
				}
//    			if(check(n))
//				{
//				    cout<<"YODA";
//				}
			}
			if(num3==0)
			{
				cout<<"YODA";
			}
			cout<<endl;
			
    		for(int i=0;i<ml;i++)
    		{
    			if(b[i]!=-1)
				{
					num4++;
				    cout<<b[i];	
				}
//    			if(check(b))
//				{
//					cout<<"YODA";
//				}
			}
			if(num4==0)
			{
				cout<<"YODA";
			}
	}
	return 0;
}
2024/2/23 12:44
加载中...