Advertisement
Cristian_Prisecariu

Untitled

Apr 9th, 2020
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int n,a[10],b[20],z,i,m,c[20];
  6.  
  7. int main()
  8. {
  9. cin>>n;
  10. //construiesc vectorul de frecventa notat a[10];
  11. for(i=1; i<=n; ++i)
  12. {
  13. cin>>z;
  14. while(z)
  15. {
  16. a[z%10]++;
  17. z/=10;
  18. }
  19. }
  20. //verific constructia a[10];
  21. //for(int i=0;i<=9;++i)
  22. //cout<<a[i]<<" ";
  23. //construiesc vectorul b[20] care pe pozitie impara are indicii din a si apoi valoare din a(adica nr de aparitii);
  24. i=0;
  25. m=0;
  26. while(i<10)
  27. {
  28. b[m]=i;
  29. ++m;
  30. b[m]=a[i];
  31. ++m;
  32. ++i;
  33. }
  34. //verific constructia b[20];
  35. //cout<<'\n';
  36. //for(int i=0;i<m;++i)
  37. //cout<<b[i]<<" ";
  38. //sortez b[20] cu bubble sort dupa nr de aparitii miscand in oglinda si indicii;
  39. int ok=0;
  40. while(!ok)
  41. {
  42. ok=1;
  43. for(i=1; i<18; i+=2)
  44. if(b[i]>b[i+2])
  45. {
  46. swap(b[i],b[i+2]);
  47. swap(b[i-1],b[i+1]);
  48. ok=0;
  49. }
  50. }
  51. //verific sortarea....
  52. //cout<<'\n';
  53. //for(int i=0;i<m;++i)
  54. //cout<<b[i]<<" ";
  55. //construiesc un nou vector c de lungime aleatorie oricum mai mic ca 20,
  56. // pornind de la sfarsit,... unde da de primul 0(al nr de aparitii)
  57. // iese din while si ramane ceea ce trebuie
  58. int l=0;
  59. i=19;
  60. while(b[i]!=0)
  61. {
  62. c[l]=b[i];
  63. ++l;
  64. --i;
  65. }
  66. //cout<<'\n';
  67. //afisez de la coada din doi in doi
  68. //pt ca la constructia lui c s-a inversat ordinea
  69. for(i=l-1;i>=0; i-=2)
  70. cout<<c[i]<<" ";
  71. return 0;
  72. }
  73. obtin 20pct
  74. unde e eroarea..?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement