Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int n,a[10],b[20],z,i,m,c[20];
- int main()
- {
- cin>>n;
- //construiesc vectorul de frecventa notat a[10];
- for(i=1; i<=n; ++i)
- {
- cin>>z;
- while(z)
- {
- a[z%10]++;
- z/=10;
- }
- }
- //verific constructia a[10];
- //for(int i=0;i<=9;++i)
- //cout<<a[i]<<" ";
- //construiesc vectorul b[20] care pe pozitie impara are indicii din a si apoi valoare din a(adica nr de aparitii);
- i=0;
- m=0;
- while(i<10)
- {
- b[m]=i;
- ++m;
- b[m]=a[i];
- ++m;
- ++i;
- }
- //verific constructia b[20];
- //cout<<'\n';
- //for(int i=0;i<m;++i)
- //cout<<b[i]<<" ";
- //sortez b[20] cu bubble sort dupa nr de aparitii miscand in oglinda si indicii;
- int ok=0;
- while(!ok)
- {
- ok=1;
- for(i=1; i<18; i+=2)
- if(b[i]>b[i+2])
- {
- swap(b[i],b[i+2]);
- swap(b[i-1],b[i+1]);
- ok=0;
- }
- }
- //verific sortarea....
- //cout<<'\n';
- //for(int i=0;i<m;++i)
- //cout<<b[i]<<" ";
- //construiesc un nou vector c de lungime aleatorie oricum mai mic ca 20,
- // pornind de la sfarsit,... unde da de primul 0(al nr de aparitii)
- // iese din while si ramane ceea ce trebuie
- int l=0;
- i=19;
- while(b[i]!=0)
- {
- c[l]=b[i];
- ++l;
- --i;
- }
- //cout<<'\n';
- //afisez de la coada din doi in doi
- //pt ca la constructia lui c s-a inversat ordinea
- for(i=l-1;i>=0; i-=2)
- cout<<c[i]<<" ";
- return 0;
- }
- obtin 20pct
- unde e eroarea..?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement