Advertisement
Guest User

Untitled

a guest
Sep 17th, 2019
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. #include <fstream>
  2.  
  3. using namespace std;
  4. ifstream cin("sirpie.in");
  5. ofstream cout("sirpie.out");
  6. int n,i,sol[25],k,m[25];
  7. int Evalid(int k);
  8. void afisare();
  9. void back(int k);
  10.  
  11. int cmmdc(int a,int b);
  12. int main()
  13. {
  14. cin>>n;
  15. for(int i=1;i<=n;i++)
  16. cin>>m[i];
  17. for(int i=1;i<n;i++)
  18. for(int j=i+1;j<=n;j++)
  19. if(m[i]>m[j])
  20. {
  21. int aux=m[i];
  22. m[i]=m[j];
  23. m[j]=aux;
  24. }
  25. back(1);
  26.  
  27. return 0;
  28. }
  29. void back(int k)
  30. {
  31. if(n<k)
  32. afisare();
  33. else
  34. for(int i=1;i<=n;i++)
  35. {
  36. sol[k]=i;
  37. if(Evalid(k))
  38. if(k==n)
  39. afisare();
  40. else
  41. back(k+1);
  42. }
  43. }
  44. int Evalid(int k)
  45. {
  46. for(int i=1;i<k;i++)
  47. if(sol[i]==sol[k])
  48. return 0;
  49. if(k>1)
  50. if(cmmdc(m[sol[k]],m[sol[k-1]]) != 1)
  51. return 0;
  52. return 1;
  53. }
  54. void afisare()
  55. {
  56. for(int i=1;i<=n;i++)
  57. cout<<m[sol[i]]<<" ";
  58. cout<<endl;
  59. }
  60.  
  61. int cmmdc(int a,int b)
  62. {
  63. while(b!=0)
  64. {
  65. int r=a%b;
  66. a=b;
  67. b=r;
  68. }
  69. return a;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement