Wooph

SirPIE

Feb 21st, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.00 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <algorithm>
  4. using namespace std;
  5.  
  6.  
  7. ifstream fin("sirpie.in");
  8. ofstream fout("sirpie.out");
  9.  
  10. int st[10], n, v[100];
  11. int prime(int a, int b)
  12. {
  13.     if(!b)
  14.         return a;
  15.     return prime(b, a%b);
  16. }
  17.  
  18. int valid(int niv)
  19. {
  20.     int i;
  21.     for(i=1; i<=niv; i++){
  22.         if(prime(v[st[i]],v[st[i+1]])!=1 && i<niv) return 0;
  23.         for(int j=i+1;j<=niv;j++)
  24.         {
  25.             if(st[i]==st[j]) return 0;
  26.         }
  27.     }
  28.     return 1;
  29. }
  30. void afisare_stiva()
  31. {
  32.     int i;
  33.     for(i=1; i<=n; i++)
  34.         fout<<v[st[i]]<<" ";
  35.     fout<<endl;
  36. }
  37. void back(int nivel)
  38. {
  39.     if (nivel>n) afisare_stiva();
  40.     else
  41.     {
  42.         for(int i=1; i<=n; i++)
  43.         {
  44.             st[nivel]=i;
  45.             if(valid(nivel)) back(nivel+1);
  46.         }
  47.     }
  48. }
  49.  
  50. int main()
  51. {
  52.     //cout<<prime(1,2);
  53.     fin>>n;
  54.     for(int i=1; i<=n; i++)
  55.         fin>>v[i];
  56.     sort(v,v+n+1);
  57.     back(1);
  58.     fin.close();
  59.     fout.close();
  60.     return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment