2h
My code is working for the sample test cases but is giving wrong answer on submission.Can someone point out on which corner test cases my code can fail. Here is my code:
#include<bits/stdc++.h>
#define ll long long int
using namespace std;
char arr[1000000];
int main()
{
ll t,i,l;
cin>>t;
while(t–)
{
cin>>arr;
l=strlen(arr);
arr[l]=’\0’;
int f=0;
if(l%2!=0)
{
i=l/2;
if(arr[i]<‘9’)
{
arr[i]=(arr[i]-‘0’)+1+‘0’;
f=1;
}
for(i=i+1;i<l;i++)
{
ll c=l-i-1;
if(f==0)
{
if(arr[c]==arr[i]&&arr[i]!=‘9’)
{
arr[c]=(arr[c]-‘0’)+1+‘0’;
arr[i]=(arr[i]-‘0’)+1+‘0’;
f=1;
}
else if(arr[c]>arr[i])
{
arr[i]=arr[c];
f=1;
}
else if(arr[i]>arr[c])
{
arr[c]=(arr[c]-‘0’)+1+‘0’;
arr[i]=arr[c];
f=1;
}
}
else
{
arr[i]=arr[c];
}
}
}
else
{
f=0;
for(i=l/2;i<l;i++)
{
ll c=l-i-1;
if(f==0)
{
if(arr[c]==arr[i]&&arr[i]!=‘9’)
{
arr[c]=(arr[c]-‘0’)+1+‘0’;
arr[i]=(arr[i]-‘0’)+1+‘0’;
f=1;
}
else if(arr[c]>arr[i])
{
arr[i]=arr[c];
f=1;
}
else if(arr[i]>arr[c])
{
arr[c]=(arr[c]-‘0’)+1+‘0’;
arr[i]=arr[c];
f=1;
}
}
else
{
arr[i]=arr[c];
}
}
}
if(f==0)
{
cout<<“1”;
for(i=0;i<l;i++)
{
cout<<“0”;
}
cout<<“1”<<endl;
continue;
}
ll d=0;
for(i=0;i<l;i++)
{
if(arr[i]!=‘0’)
{
d=i;
break;
}
}
for(i=d;i<l;i++)
cout<<arr[i];
cout<<endl;
}
return 0;
}