Advertisement
nicuvlad76

Untitled

Jan 21st, 2021
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define N 10001
  3. using namespace std;
  4. ifstream fin("date.in");
  5. ofstream fout("date.out");
  6. int v[N],n;
  7. void Flip(int n, int v[], int i, int j)
  8. {
  9. int aux;
  10. while(i<j)
  11. {
  12. aux=v[i];
  13. v[i]=v[j];
  14. v[j]=aux;
  15. i++;
  16. j--;
  17. }
  18. }
  19. void Citire()
  20. {
  21. fin>>n;
  22. for(int i=1; i<=n; i++)fin>>v[i];
  23. }
  24. void Afisare()
  25. {
  26. for(int i=1; i<=n; i++)fout<<v[i]<<" ";
  27. fout<<"\n";
  28. }
  29. void Cerb()
  30. {
  31. int Maxi,k;
  32. for(int i=n; i>1; i--)
  33. {
  34. Maxi=v[i];
  35. k=i;
  36. for(int j=i-1; j>=1; j--)
  37. if(v[j]>Maxi)Maxi=v[j],k=j;
  38. Flip(n,v,1,k);
  39. Flip(n,v,1,i);
  40. }
  41. }
  42. void Cerc()
  43. {
  44. int m=0,p=1;
  45. while(p<n)
  46. {
  47. p*=2;
  48. m++;
  49. }
  50. for(int i=m;i>=1;i--)
  51. for(int j=(1<<(m-i));j>=1;j--)
  52. if(v[(1<<i)*(j-1)+1]>v[(1<<i)*j])
  53. Flip(n,v,(1<<i)*(j-1)+1,(1<<i)*j);
  54. }
  55. int main()
  56. {
  57. Citire();
  58. ///Cerb();
  59. Cerc();
  60. Afisare();
  61. return 0;
  62. }
  63.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement