Advertisement
icatalin

tema 6.11.2015

Nov 5th, 2015
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.98 KB | None | 0 0
  1.     // problema 1                                                          
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. ifstream f("date.in");
  7. ofstream g("date.out");
  8.  
  9. int v[6],p;
  10.  
  11. bool valid(int p)
  12. {
  13.     for(int i=1;i<p;i++)
  14.     {
  15.         if(v[i]==v[i+1])
  16.             return false;
  17.         if((v[i]==1 && v[i+1]==3) || (v[i]==3 && v[i+1]==1) || (v[i]==4 && v[i+1]==5) || (v[i]==5 && v[i+1]==4))
  18.             return false;
  19.         if(v[i]==v[p])
  20.             return false;
  21.     }
  22.     return true;
  23. }
  24.  
  25. bool solutie(int p)
  26. {
  27.     if(p==5)
  28.         return true;
  29.     return false;
  30. }
  31.  
  32. void afisare()
  33. {
  34.     for(int i=1;i<=5;i++)
  35.     {
  36.         if(v[i]==1)
  37.             g<<"alb ";
  38.         if(v[i]==2)
  39.             g<<"rosu ";
  40.         if(v[i]==3)
  41.             g<<"galbe ";
  42.         if(v[i]==4)
  43.             g<<"verde ";
  44.         if(v[i]==5)
  45.             g<<"albastru ";
  46.     }
  47.     g<<'\n';
  48. }
  49.  
  50. void bk(int p)
  51. {
  52.     for(int i=1;i<=5;i++)
  53.     {
  54.         v[p]=i;
  55.         if(valid(p))
  56.             if(solutie(p))
  57.                 afisare();
  58.             else
  59.                 bk(p+1);
  60.     }
  61. }
  62.  
  63. int main()
  64. {
  65.     bk(1);
  66. }
  67.  
  68. //problema 2
  69.                                                                
  70. #include <fstream>
  71.  
  72. using namespace std;
  73. ifstream f("date.in");
  74. ofstream g("date.out");
  75.  
  76. int n,m,p,k,v[100],fv[100];
  77.  
  78. void citire()
  79. {
  80.     f>>m>>n>>p;
  81. }
  82.  
  83. void afisare(int k)
  84. {
  85.     for(int i=1;i<=k;i++)
  86.         g<<v[i]<<" ";
  87.         g<<'\n';
  88. }
  89.  
  90. bool valid(int k)
  91. {
  92.     for(int i=1;i<=k;i++)
  93.         if(v[i]>p)
  94.         return false;
  95.     return true;
  96. }
  97.  
  98. bool solutie(int k)
  99. {
  100.     int suma=0;
  101.     for(int i=1;i<=k;i++)
  102.         suma+=v[i];
  103.     if(suma==m && k<=n)
  104.         return true;
  105.     return false;
  106. }
  107.  
  108. void bk(int k)
  109. {
  110.     for(int i=1;i<=m;i++)
  111.     {
  112.         v[k]=i;
  113.         if(valid(k))
  114.             if(solutie(k))
  115.                 afisare(k);
  116.             else
  117.             {
  118.                 if(k>n)
  119.                     return;
  120.                 bk(k+1);
  121.             }
  122.     }
  123. }
  124.  
  125. int main()
  126. {
  127.     citire();
  128.     bk(1);
  129.     return 0;
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement