fork(1) download
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cmath>
  4. #include<cstring>
  5. #include<set>
  6. #include<vector>
  7. #include<queue>
  8. #include<map>
  9. #include<algorithm>
  10. #include<utility>
  11. #include<ctime>
  12.  
  13. #define MX 100000
  14. #define pb push_back
  15. #define mp make_pair
  16. #define fs first
  17. #define sec second
  18. #define sc scanf
  19. #define pr printf
  20. using namespace std;
  21. int main()
  22. {
  23. //freopen("t9.txt", "r", stdin); // line1
  24. //freopen("o9.txt", "w", stdout);
  25. int n,i,j,k,m,l;
  26. vector<int> v;
  27. queue<int> s[10];
  28. //cout<<"Enter no of elements:--";
  29. cin>>n;
  30. l=0;
  31. // cout<<"Enter elements:--";
  32. for(i=0;i<n;++i){
  33. cin>>j;
  34. m=j;
  35. k=0;
  36. while(m!=0)
  37. {
  38. m=m/10;
  39. ++k;
  40. }
  41. if(l<k)
  42. l=k;
  43. v.push_back(j);
  44. }
  45. for(i=0;i<l;++i){
  46. int x=pow(10,i);
  47. // cout<<x<<endl;
  48. for(j=0;j<v.size();++j){
  49. // cout<<((v[j]/x)%10)<<" ";
  50. if((v[j]/x)%10==0)
  51. s[0].push(v[j]);
  52. else if((v[j]/x)%10==1)
  53. s[1].push(v[j]);
  54. else if((v[j]/x)%10==2)
  55. s[2].push(v[j]);
  56. else if((v[j]/x)%10==3)
  57. s[3].push(v[j]);
  58. else if((v[j]/x)%10==4)
  59. s[4].push(v[j]);
  60. else if((v[j]/x)%10==5)
  61. s[5].push(v[j]);
  62. else if((v[j]/x)%10==6)
  63. s[6].push(v[j]);
  64. else if((v[j]/x)%10==7)
  65. s[7].push(v[j]);
  66. else if((v[j]/x)%10==8)
  67. s[8].push(v[j]);
  68. else if((v[j]/x)%10==9)
  69. s[9].push(v[j]);
  70. }
  71. //cout<<endl;
  72. v.clear();
  73. for(k=0;k<10;++k){
  74. while(!s[k].empty()){
  75. j=s[k].front();
  76. v.push_back(j);
  77. //cout<<j<<" ";
  78. s[k].pop();
  79. }
  80. }
  81. // cout<<endl;
  82. }
  83. //cout<<"\nResult is as follows:--\n";
  84. for(i=0;i<v.size();++i)
  85. {
  86. cout<<v[i]<<" ";
  87. }
  88. return 0;
  89. }
  90.  
Success #stdin #stdout 0s 3468KB
stdin
5
4 3 1 10 6
stdout
1 3 4 6 10