fork(11) download
  1. #include <iostream>
  2. using namespace std;
  3. #define ulong unsigned long long
  4.  
  5. int a;
  6. int b;
  7. ulong rmin =0;
  8. ulong rmax =0;
  9. void analyze(){
  10. // aa
  11. int al = 1;
  12. int tt = a;
  13. while(tt >= 10){
  14. tt/=10;
  15. al++;
  16. }
  17. int* aa=new int[al];
  18. tt = a;
  19. for(int i =al-1; i >= 0; i--){
  20. aa[i] = tt%10;
  21. tt/=10;
  22. }
  23. // bb
  24. int bl = 1;
  25. tt = b;
  26. while(tt>=10){
  27. tt = tt/10;
  28. bl++;
  29. }
  30. int* bb=new int[bl];
  31. tt = b;
  32. for(int i =bl-1; i >= 0; i--){
  33. bb[i] = tt%10;
  34. tt/=10;
  35. }
  36. int ta,tb;
  37. int pan = 0;
  38. int pbn = 0;
  39. int pam = 0;
  40. int pbm = 0;
  41. for(int i = 0; i < al+bl; i++){
  42. // rmin
  43. if(pan>=al)ta=10;
  44. else ta=aa[pan];
  45. if(pbn>=bl)tb=10;
  46. else tb=bb[pbn];
  47. if(ta<tb){
  48. rmin=rmin*10+ta;
  49. pan++;
  50. }else{
  51. rmin=rmin*10+tb;
  52. pbn++;
  53. }
  54. // rmax
  55. if(pam>=al)ta=0;
  56. else ta=aa[pam];
  57. if(pbm>=bl)tb=0;
  58. else tb=bb[pbm];
  59. if(ta>tb){
  60. rmax=rmax*10+ta;
  61. pam++;
  62. }else{
  63. rmax=rmax*10+tb;
  64. pbm++;
  65. }
  66. }
  67. }
  68.  
  69. int main()
  70. {
  71. cin >> a >> b;
  72. analyze();
  73. cout << rmin << endl << rmax<<endl;
  74. return 0;
  75. }
Success #stdin #stdout 0s 15232KB
stdin
19283574 95183475
stdout
1951834759283574
9518347519283574