Noticethatthenumber123456789isa9-digitnumberconsistingexactlythenumbersfrom1to9,withnoduplication.Doubleitwewillobtain246913578,whichhappenstobeanother9-digitnumberconsistingexactlythenumbersfrom1to9,onlyinadifferentpermutation.Checktoseetheresultifwedoubleitagain!
Nowyouaresupposetocheckiftherearemorenumberswiththisproperty.Thatis,doubleagivennumberwith k digits,youaretotelliftheresultingnumberconsistsofonlyapermutationofthedigitsintheoriginalnumber.
InputSpecification:
Eachinputcontainsonetestcase.Eachcasecontainsonepositiveintegerwithnomorethan20digits.
OutputSpecification:
Foreachtestcase,firstprintinaline"Yes"ifdoublingtheinputnumbergivesanumberthatconsistsofonlyapermutationofthedigitsintheoriginalnumber,or"No"ifnot.Theninthenextline,printthedoublednumber.
SampleInput:1234567899SampleOutput:Yes2469135798#include<iostream>#include<string>#include<sstream>#include<vector>#include<algorithm>#include<cmath>usingnamespacestd;//9:38intmain(){//freopen("C:\\Users\\chenzhuo\\Desktop\\in.txt","r",stdin);vector<int>tmp(10,0);vector<int>tmp1(10,0);stringstr1;cin>>str1;for(inti=0;i<str1.size();i++){tmp[str1[i]-'0']++;}intjin=0;stringstr2="";for(inti=str1.size()-1;i>=0;i--){intk=2*(str1[i]-'0')+jin;jin=0;if(k>=10){k-=10;jin=1;}charc=k+'0';str2=c+str2;}if(jin==1){str2='1'+str2;}for(inti=0;i<str2.size();i++){tmp[str2[i]-'0']--;}if(tmp==tmp1)cout<<"Yes"<<endl;elsecout<<"No"<<endl;for(inti=0;i<str2.size();i++){cout<<str2[i];}}