Facebook
From Blush Kitten, 5 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 239
  1. #include <fstream>
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. ifstream fin("sirpie.in");
  6. ofstream fout("sirpie.out");
  7.  
  8. int a[11];
  9. int x[11];
  10. int n;
  11. bool s[11];
  12.  
  13. int cmmdc(int a, int b) {
  14.         if (!b)
  15.                 return a;
  16.         return cmmdc(b, a % b);
  17. }
  18.  
  19. void write() {
  20.         for ( int i = 1; i < n; ++i )
  21.                 if ( cmmdc(x[i], x[i+1]) != 1 )
  22.                         return;
  23.                        
  24.         for ( int i = 1; i <= n; ++i )
  25.                 fout << x[i] << ' ';
  26.         fout << '\n';
  27.         return;
  28. }
  29.  
  30. void back(int k) {
  31.         if ( k > n ) {
  32.                 write();
  33.                 return;
  34.         }
  35.         for ( int i = 1; i <= n; ++i ) {
  36.                 x[k] = a[i];
  37.                 if ( !s[i] ) {
  38.                         s[i] = true;
  39.                         back(k+1);
  40.                         s[i] = false;
  41.                 }
  42.         }
  43. }
  44.  
  45. int main() {
  46.        
  47.         fin >> n;
  48.        
  49.         for ( int i = 1; i <= n; ++i )
  50.                 fin >> a[i];
  51.                
  52.         for ( int i = 1; i < n; ++i )
  53.                 for ( int j = i + 1; j <= n; ++j )
  54.                         if ( a[i] > a[j] ) {
  55.                                 int temp = a[i];
  56.                                 a[i] = a[j];
  57.                                 a[j] = temp;
  58.                         }
  59.        
  60.         back(1);
  61.        
  62.        
  63.        
  64.         return 0;
  65. }
  66.