fork(1) download
  1. #include <iostream>
  2. #include <vector>
  3. #include <bits/stdc++.h>
  4. #include <limits.h>
  5. #include <math.h>
  6. #include <algorithm>
  7. using namespace std;
  8.  
  9.  
  10. int main(){
  11. int n;
  12. cin>>n;
  13. int a1[n],a2[n],b1[n],b2[n];
  14. int x,y,u,v,i=n-1;
  15. cin>>x;
  16. cin>>y;
  17. u=x;
  18. v=y;
  19.  
  20. if(u==0){
  21. for(int i=0;i<n;i++)
  22. a1[i]=0;
  23. }
  24. while(u!=0){
  25. a1[i]=u%10;
  26. a2[i]=a1[i];
  27. i--;
  28. u/=10;
  29. }
  30. i=n-1;
  31. if(v==0){
  32. for(int i=0;i<n;i++){
  33. b1[i]=0;
  34. b2[i]=0;
  35. }
  36. }
  37. while(v!=0){
  38. b1[i]=v%10;
  39. b2[i]=b1[i];
  40. i--;
  41. v/=10;
  42. }
  43. int j=0,m=0;
  44. std::sort(b1,b1+n);
  45. for(int i=0;i<n;i++){
  46. //(lower_bound(b1, b1+n,a1[i]) - b1)
  47. if(a1[i]>b1[n-1]){
  48. m++;
  49. int h=(upper_bound(b1, b1+n,0) - b1);
  50. b1[h]=-1;
  51. std::sort(b1,b1+n);
  52. }
  53. else{
  54. int k=(upper_bound(b1, b1+n,a1[i]) - b1);
  55. b1[k]=-1;
  56. std::sort(b1,b1+n);
  57. }
  58. }
  59. cout<<m<<endl;
  60.  
  61. int mx=0;
  62. std::sort(b2,b2+n);
  63. for(int i=0;i<n;i++)
  64. {
  65. if(a1[i]>=b2[n-1]){
  66. // m++;
  67. int h=(upper_bound(b2, b2+n,0) - b2);
  68. b2[h]=-1;
  69. std::sort(b2,b2+n);
  70. }
  71. else{
  72. int k=(upper_bound(b2, b2+n,a1[i]+1) - b2);
  73. mx++;
  74. b2[k]=-1;
  75. std::sort(b2,b2+n);
  76. }
  77. }
  78. cout<<mx<<endl;
  79. return 0;
  80. }
  81.  
Success #stdin #stdout 0s 16064KB
stdin
3
321
123
stdout
0
2