Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <algorithm>
- using namespace std;
- struct str
- {
- int x,cd,sc;
- };
- int cifdist(int n)
- {
- int c[10]={0};
- while(n)
- c[n%10]=1,n/=10;
- int nrcd=0;
- for(int i=0;i<=9;++i)
- if(c[i])
- ++nrcd;
- return nrcd;
- }
- int sumcif(int n)
- {
- int s=0;
- while(n)
- s+=n%10,n/=10;
- return s;
- }
- bool cmp(str a,str b)
- {
- return a.cd<b.cd||
- a.cd==b.cd&& a.sc<b.sc||
- a.cd==b.cd&&a.sc==b.sc&&a.x<b.x;
- }
- int main()
- {
- int n;
- cin>>n;
- str a[n];
- for(int i=0;i<n;++i)
- cin>>a[i].x,a[i].cd=cifdist(a[i].x),a[i].sc=sumcif(a[i].x);
- sort(a,a+n,cmp);
- for(int i=0;i<n;++i)
- cout<<a[i].x<<' ';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement