Let quasi-palindromic number be such number that adding some leading zeros (possible none) to it produces a palindromic string.
String t is called a palindrome, if it reads the same from left to right and from right to left.
For example, numbers 131 and 2010200 are quasi-palindromic, they can be transformed to strings "131" and "002010200", respectively, which are palindromes.
You are given some integer number x. Check if it's a quasi-palindromic number.
InputThe first line contains one integer number x (1 ≤ x ≤ 109). This number is given without any leading zeroes.
Print "YES" if number x is quasi-palindromic. Otherwise, print "NO" (without quotes).
Input
131
Output
YES
Input
320
Output
NO
Input
2010200
Output
YES
#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
int main()
{
ll a,c;
scanf("%lld",&a);
while(a%10==0)
{
a/=10;
}
c=a;
ll b=0;
for(int i=0;c!=0;i++)
{
b=b*10+c%10;
c/=10;
}
if(a==b)
{
printf("YES\n");
}
else
{
printf("NO\n");
}
return 0;
}
B - Luba And The Ticket
#include<bits/stdc++.h>
using namespace std;
int main()
{
char a[7];
scanf("%s",a);
int cnt=3;
if(a[0]+a[1]+a[2]==a[3]+a[4]+a[5])
{
printf("0\n");
return 0;
}
int a1,a2,a3,a4,a5,a6;
a1=a[0]-'0';
a2=a[1]-'0';
a3=a[2]-'0';
a4=a[3]-'0';
a5=a[4]-'0';
a6=a[5]-'0';
for(int i1=0;i1<10;i1++)
{
for(int i2=0;i2<10;i2++)
{
for(int i3=0;i3<10;i3++)
{
for(int i4=0;i4<10;i4++)
{
for(int i5=0;i5<10;i5++)
{
for(int i6=0;i6<10;i6++)
{
if(i1+i2+i3!=i4+i5+i6)
continue;
int ans=0;
ans+=(a[0]-'0'!=i1);
ans+=(a[1]-'0'!=i2);
ans+=(a[2]-'0'!=i3);
ans+=(a[3]-'0'!=i4);
ans+=(a[4]-'0'!=i5);
ans+=(a[5]-'0'!=i6);
cnt=min(ans,cnt);
}
}
}
}
}
}
printf("%d\n",cnt);
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int maxz(int a,int b,int c)
{
return max(a,b)>c?max(a,b):c;
}
int minz(int a,int b,int c)
{
return min(a,b)<c?min(a,b):c;
}
int diff(int a,int b)
{
return abs(a-b);
}
int mid(int a,int b,int c)
{
int d[3]={a,b,c};
sort(d,d+3);
return d[1];
}
int main()
{
char a[7];
cin>>a;
int b[6];
for(int i=0;i<6;i++)
{
b[i]=a[i]-'0';
}
int sum1=b[0]+b[1]+b[2];
int sum2=b[3]+b[4]+b[5];
if(sum1==sum2)
{
printf("0\n");
return 0;
}
else if(diff(sum1,sum2)>18)
{
printf("3\n");
return 0;
}
else if(sum1>sum2&&(sum1-sum2<=9-minz(b[3],b[4],b[5])||sum1-sum2<=maxz(b[0],b[1],b[2])))
{
printf("1\n");
return 0;
}
else if(sum1<sum2&&(sum2-sum1<=9-minz(b[0],b[1],b[2])||sum2-sum1<=maxz(b[3],b[4],b[5])))
{
printf("1\n");
return 0;
}
else if(sum1>sum2&&diff(sum1,sum2)<=maxz(b[0],b[1],b[2])+9-minz(b[3],b[4],b[5]))
{
printf("2\n");
return 0;
}
else if(sum1<sum2&&diff(sum1,sum2)<=maxz(b[3],b[4],b[5])+9-minz(b[0],b[1],b[2]))
{
printf("2\n");
return 0;
}
else if(sum1>sum2&&diff(sum1,sum2)<=maxz(b[0],b[1],b[2])+mid(b[0],b[1],b[2]))
{
printf("2\n");
return 0;
}
else if(sum1>sum2&&diff(sum1,sum2)<=18-minz(b[3],b[4],b[5])-mid(b[3],b[4],b[5]))
{
printf("2\n");
return 0;
}
else if(sum2>sum1&&diff(sum1,sum2)<=maxz(b[3],b[4],b[5])+mid(b[3],b[4],b[5]))
{
printf("2\n");
return 0;
}
else if(sum2>sum1&&diff(sum1,sum2)<=18-minz(b[0],b[1],b[2])-mid(b[0],b[1],b[2]))
{
printf("2\n");
return 0;
}
else
{
printf("3\n");
return 0;
}
}
#include<bits/stdc++.h>
using namespace std;
int cmp(int a,int b)
{
return a>b;
}
int main()
{
char s[7];
cin>>s;
int sum=0;
int a[6];
for(int i=0;i<6;i++)
{
if(i<=2)
sum+=s[i]-'0';
else
sum-=s[i]-'0';
}
if(sum==0)
{
return 0*printf("0\n");
}
else if(sum>0)
{
for(int i=0;i<6;i++)
{
if(i<3)
a[i]=s[i]-'0';
else
a[i]=9-(s[i]-'0');
}
}
else
{
for(int i=0;i<6;i++)
{
if(i<3)
a[i]=9-(s[i]-'0');
else
a[i]=s[i]-'0';
}
}
sum=abs(sum);
sort(a,a+6,cmp);
/*for(int i=0;i<6;i++)
{
printf("%d\n",a[i]);
}*/
for(int i=0;i<6;i++)
{
if(sum-a[i]<=0)
{
printf("%d\n",i+1);
return 0;
}
else
sum-=a[i];
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+7;
char a[maxn];
int alpha[50],last[50];
int main()
{
scanf("%s",a);
memset(last,-1,sizeof(last));
int len=strlen(a);
for(int i=0;i<len;i++)
{
int x=a[i]-'a';
alpha[x]=max(alpha[x],i-last[x]);
last[x]=i;
}
for(int i=0;i<26;i++)
{
alpha[i]=max(alpha[i],len-last[i]);
}
int ans=len/2+1;
for(int i=0;i<26;i++)
{
ans=min(ans,alpha[i]);
}
printf("%d\n",ans);
return 0;
}