为什么会UKE?
查看原帖
为什么会UKE?
776599
jping楼主2023/6/17 16:08
#include<iostream>
using namespace std;
const int Nm=1e7+2;
int a[Nm],b1[Nm],b2[Nm];
int main(){
	int x,tn=0,t1=0,t2=0;
	for(int i=0;i<10;i++){//1e7
		cin>>x;
		while(x>0){
			a[tn]=i;
			tn++;
			x--;
		}
	}
	tn--;
	while(tn>0 && a[tn]==a[tn-1]){
		b1[t1]=a[tn];
		b2[t2]=a[tn-1];
		t1++;
		t2++;
		tn-=2;	
	}
	if(tn>=0){
		b1[t1]=a[tn];
		t1++;
		tn--;
	}
	if(tn>=0){
		b2[t2]=a[tn];
		t2++;
		tn--;
	}
	for(int i=tn;i>=0;i--){//1e7
		b2[t2]=a[i];
		t2++;
		if(i>0){
			i--;
			b1[t1]=a[i];
			t1++;
		}
	}
	//不能做乘法
	//做除法
	int g=0,f=0;
	if(b1[t1-1]==0){//b1/2,b2*2
		for(int i=0;i<t1;i++){//b1/=2;
			g=g*10+b1[i];
			b1[i]=g/2;
			g%=2;
			if(f==0 && b1[i]>0)f=1;
			if(f==1)cout<<b1[i];
		}
		cout<<endl;
		g=0;
		for(int i=t2-1;i>=0;i--){//b2*=2;
			g+=b2[i]*2;
			b2[i]=g%10;
			g/=10;
		}
		if(g>0)cout<<g;
		for(int i=0;i<t2;i++)cout<<b2[i];
	}
	else{
		for(int i=0;i<t2;i++){//b2/=2;
			g=g*10+b2[i];
			b2[i]=g/2;
			g%=2;
			if(f==0 && b2[i]>0)f=1;
			if(f==1)cout<<b2[i];
		}
		cout<<endl;
		g=0;
		for(int i=t1-1;i>=0;i--){//b1*=2;
			g+=b1[i]*2;
			b1[i]=g%10;
			g/=10;
		}
		if(g>0)cout<<g;
		for(int i=0;i<t1;i++)cout<<b1[i];
	}
	return 0;
}
2023/6/17 16:08
加载中...