Advertisement
vercas

My code - subject 1

Mar 4th, 2013
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.32 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. ifstream in("biperm.in");
  7. ofstream out("biperm.out");
  8.  
  9. int N;
  10. int *A, *B;
  11.  
  12. long Solutii = 0;
  13. int Minimum;
  14.  
  15. int *solA, *solB;
  16.  
  17. int int_temp;
  18. bool bool_temp;
  19. int mutari = 0;
  20. void incepe(int pos)
  21. {
  22.     if (pos < N)
  23.     {
  24.         int a = A[pos], b = B[pos];
  25.  
  26.         incepe(pos + 1);
  27.  
  28.         A[pos] = b;
  29.         B[pos] = a;
  30.         mutari++;
  31.         incepe(pos + 1);
  32.  
  33.         A[pos] = a;
  34.         B[pos] = b;
  35.         mutari--;
  36.     }
  37.     else
  38.     {
  39.         for (int i = 0; i < N; i++)
  40.         {
  41.             bool_temp = false;
  42.             int_temp = A[i];
  43.  
  44.             for (int j = 0; j < N; j++)
  45.                 if (int_temp == B[j])
  46.                 {
  47.                     bool_temp = true;
  48.                     break;
  49.                 }
  50.  
  51.             if (!bool_temp) return;
  52.         }
  53.  
  54.         if (mutari < Minimum)
  55.             Minimum = mutari;
  56.  
  57.         if (Solutii == 0)
  58.         {
  59.             for (int i = 0; i < N; i++)
  60.             {
  61.                 solA[i] = A[i];
  62.                 solB[i] = B[i];
  63.             }
  64.         }
  65.  
  66.         Solutii++;
  67.     }
  68. }
  69.  
  70. int main()
  71. {
  72.     in >> N;
  73.     A = new int[N];
  74.     B = new int[N];
  75.     solA = new int[N];
  76.     solB = new int[N];
  77.  
  78.     Minimum = N;
  79.  
  80.     for (int i = 0; i < N; i++)
  81.         in >> A[i];
  82.     for (int i = 0; i < N; i++)
  83.         in >> B[i];
  84.  
  85.     incepe(0);
  86.  
  87.     out << Solutii << " " << Minimum << endl;
  88.  
  89.     for (int i = 0; i < N; i++)
  90.         out << (i == 0 ? "" : " ") << solA[i];
  91.     out << endl;
  92.     for (int i = 0; i < N; i++)
  93.         out << (i == 0 ? "" : " ") << solB[i];
  94.  
  95.     return 0;
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement