Advertisement
icatalin

aranjamente combinari

Oct 20th, 2015
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.39 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <cstring>
  4. using namespace std;
  5. ifstream f("aranjamente.in");
  6. ofstream g("aranjamente.out");
  7. int v[10],st[10];
  8. int n,p;
  9.  
  10. void afis()
  11. {
  12.     for(int i=1;i<=p;i++)
  13.         g<<st[i]<<" ";
  14.     g<<'\n';
  15. }
  16.  
  17. bool valid(int k)
  18. {
  19.     for(int i=1;i<=k-1;i++)
  20.         if(st[i]==st[k])
  21.         return false;
  22.     return true;
  23. }
  24.  
  25. void backtraking(int k,int p)
  26. {
  27.     for(int i=1;i<=n;i++)
  28.     {
  29.         st[k]=i;
  30.         if(valid(k))
  31.         {
  32.             if(k==p)
  33.                 afis();
  34.             else
  35.                 backtraking(k+1,p);
  36.         }
  37.     }
  38. }
  39.  
  40. int main()
  41. {
  42.     f>>n>>p;
  43.     backtraking(1,p);
  44.     return 0;
  45. }
  46.  
  47.  
  48. combinari
  49.  
  50. #include <iostream>
  51. #include <fstream>
  52. #include <cstring>
  53. using namespace std;
  54. ifstream f("combinari.in");
  55. ofstream g("combinari.out");
  56. int v[10],st[10];
  57. int n,p;
  58.  
  59. void afis()
  60. {
  61.     for(int i=1;i<=p;i++)
  62.         g<<st[i]<<" ";
  63.     g<<'\n';
  64. }
  65.  
  66. bool valid(int k)
  67. {
  68.     for(int i=1;i<=k-1;i++)
  69.         if(st[i]==st[k] || st[i]>st[k])
  70.         return false;
  71.     return true;
  72. }
  73.  
  74. void backtraking(int k,int p)
  75. {
  76.     for(int i=1;i<=n;i++)
  77.     {
  78.         st[k]=i;
  79.         if(valid(k))
  80.         {
  81.             if(k==p)
  82.                 afis();
  83.             else
  84.                 backtraking(k+1,p);
  85.         }
  86.     }
  87. }
  88.  
  89. int main()
  90. {
  91.     f>>n>>p;
  92.     backtraking(1,p);
  93.     return 0;
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement