Advertisement
a53

SortNumbers

a53
Aug 11th, 2019
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.75 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. using namespace std;
  4. struct str
  5. {
  6. int x,cd,sc;
  7. };
  8.  
  9. int cifdist(int n)
  10. {
  11. int c[10]={0};
  12. while(n)
  13. c[n%10]=1,n/=10;
  14. int nrcd=0;
  15. for(int i=0;i<=9;++i)
  16. if(c[i])
  17. ++nrcd;
  18. return nrcd;
  19. }
  20.  
  21. int sumcif(int n)
  22. {
  23. int s=0;
  24. while(n)
  25. s+=n%10,n/=10;
  26. return s;
  27. }
  28.  
  29. bool cmp(str a,str b)
  30. {
  31. return a.cd<b.cd||
  32. a.cd==b.cd&& a.sc<b.sc||
  33. a.cd==b.cd&&a.sc==b.sc&&a.x<b.x;
  34. }
  35.  
  36. int main()
  37. {
  38. int n;
  39. cin>>n;
  40. str a[n];
  41. for(int i=0;i<n;++i)
  42. cin>>a[i].x,a[i].cd=cifdist(a[i].x),a[i].sc=sumcif(a[i].x);
  43. sort(a,a+n,cmp);
  44. for(int i=0;i<n;++i)
  45. cout<<a[i].x<<' ';
  46. return 0;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement