代码越改越乱,求调
查看原帖
代码越改越乱,求调
1187802
wuhaolinwhl楼主2025/7/23 19:35
#include <bits/stdc++.h>
using namespace std;
long long n,T,ans;
int main(){
	cin>>T;
	for(int q=1;q<=T;q++){
		string a,b;
		cin>>a>>b;
		int opa=0,opb=0;
		for(int i=0;i<a.size();i++){
			if(opa==0&&a[i]!='?'&&b[i]!='?'&&a[i]<b[i]&&opb==0)opa=1;
			if(opb==0&&a[i]!='?'&&b[i]!='?'&&b[i]<a[i]&&opa==0)opb=1;
			if(opa==1){
				if(a[i]=='?')a[i]='9';
				if(b[i]=='?')b[i]='0';
				continue;
			}
			if(opb==1){
				if(a[i]=='?')a[i]='0';
				if(b[i]=='?')b[i]='9';
				continue;
			}
			int o=0;
			if(a[i]=='?'&&b[i]!='?'){
				a[i]=b[i];
				if(a[i+1]!='?'&&b[i+1]!='?')
				{
					if(a[i+1]>=b[i+1]+5&&a[i]!='0')
					{
						a[i]--;
						opa=1;
						for(int u=i+2;u<a.size();u++)
						{
							if(u==a.size()-1&&b[u]==a[u])
							{
								a[i]++;
								opa=0;
								break;
							}
							if(b[u]>a[u]||(b[u]=='?'&&a[u]!='?'&&a[u]!='9'))
							{
								a[i]++;
								opa=0;
								break;
							}
						}
					}
					if(b[i+1]>=a[i+1]+5)
					{
						a[i]++;
						opb=1;
						for(int u=i+2;u<a.size();u++)
						{
							if(u==a.size()-1&&b[u]==a[u])
							{
								a[i]--;
								opb=0;
								break;
							}
							if(b[u]<a[u]||(b[u]!='?'&&a[u]=='?'&&b[u]!='9'))
							{
								a[i]--;
								opb=0;
								break;
							}
						}
					}
				}
			}
			if(a[i]!='?'&&b[i]=='?'){
				b[i]=a[i];
				if(a[i+1]!='?'&&b[i+1]!='?')
				{
					
					if(a[i+1]>=b[i+1]+5)
					{
						b[i]++;
						opa=1;
						for(int u=i+2;u<a.size();u++)
						{
							if(u==a.size()-1&&b[u]==a[u])
							{
								b[i]--;
								opa=0;
								break;
							}
							if(b[u]>a[u]||(b[u]=='?'&&a[u]!='?'&&a[u]!='9'))
							{
								b[i]--;
								opa=0;
								break;
							}
						}
					}
					if(b[i+1]>=a[i+1]+5&&a[i]!='0')
					{
						b[i]--;
						opb=1;
						for(int u=i+2;u<a.size();u++)
						{
							if(u==a.size()-1&&b[u]==a[u])
							{
								b[i]++;
								opb=0;
								break;
							}
							if(b[u]<a[u]||(b[u]!='?'&&a[u]=='?'&&b[u]!='9'))
							{
								b[i]++;
								opb=0;
								break;
							}
						}
					}
				}
			}
			if(a[i]=='?'&&b[i]=='?'){
				a[i]='0';
				b[i]='0';
				if(a[i+1]!='?'&&b[i+1]!='?'&&b[i+1]>=a[i+1]+5&&opa!=1)
				{
					a[i]++;
					opb=1;
					if(b[i+1]==a[i+1]+5&&i+2==a.size())
					{
						a[i]--;
						opb=0;
						continue;
					}
					for(int u=i+2;u<a.size();u++)
					{
						if(u==a.size()-1&&b[u]==a[u])
						{
							a[i]--;
							opb=0;
							break;
						}
						if(b[i+2]<a[i+2]||(a[i+2]=='?'&&b[i+2]!='?'&&b[i+2]!='9'))
						{
							a[i]--;
							opb=0;
							break;
						}
					}
				}
				if(a[i+1]!='?'&&b[i+1]!='?'&&a[i+1]>=b[i+1]+5&&opb!=1) 
				{
					b[i]++;
					opa=1;
					if(a[i+1]==b[i+1]+5&&i+2==a.size())
					{
						b[i]--;
						opa=0;
						continue;
					}
					for(int u=i+2;u<a.size();u++)
					{
						if(u==a.size()-1&&b[u]==a[u])
						{
							b[i]--;
							opa=0;
							break;
						 } 
						if(b[u]>a[u]||(b[u]=='?'&&a[u]!='?'&&a[u]!='9'))
						{
							b[i]--;
							opa=0;
							break;
						}
					}
				} 
			}
		}
		cout << "Case #" << q << ": " << a << " " << b << endl;
	}
	return 0;
}
2025/7/23 19:35
加载中...