TLE+MLE+WA+RE 大佬帮我看看怎么改
#include<bits/stdc++.h>
inline bool cmp(int x,int y)//比较两数大小
{
int sa=0,sb=0;
int a=x,b=y;
while(a!=0)
{
a/=10;sa++;
}
while(b!=0)
{
b/=10;sb++;
}
if(sa!=sb)return false;
a=x,b=y;
int aa[10]={},bb[10]={},i=10;
while(a!=0)
{
aa[i]=a%10;bb[i]=b%10;i--;
}
i=1;
while(aa[i]!=bb[i]&&i<=10)i++;
if(i>10)return false;
if(aa[i]>bb[i])return true;
else return false;
}
int main()
{
int a,b,*c,*d;
std::cin>>a>>b;
if(cmp(a,b))std::swap(a,b);//使小数在前
c=new int[2*b-2*a+1];//a+b的范围必定在2a~2b之间
d=new int[2*b-2*a+1];
for(int i=0;i<=2*b-2*a;i++)
{
d[i]=2*a+i;c[i]=i+a;//a+b=c则c-a=b,枚举c时每个c为2a+i,减去a后为a+i
}
int left=2*a,right=2*b,mid;
do//二分查找
{
mid=(left+right)/2;
if(c[mid]<b)left=mid;
else if(c[mid]>b)right=mid;
}while(c[mid]!=b);
std::cout<<c[mid];
}