Advertisement
Guest User

awer

a guest
Nov 22nd, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.92 KB | None | 0 0
  1. #include <fstream>
  2.  
  3. using namespace std;
  4. ifstream fin("date.in");
  5. ofstream fout("date.out");
  6. void afisare(int x[],int n)
  7. {
  8.     for(int i=1;i<=n;i++)
  9.         fout<<x[i]<<' ';
  10.     fout<<'\n';
  11. }
  12. bool valid(int x[],int i,int n,int m)
  13. {
  14.     if(x[i]!=0)
  15.     {
  16.         if(i>1) if(x[i-1]!=0) return 0;
  17.         for(int j=1;j<i;j++)
  18.             if(x[j]!=0 && x[j]>x[i]) return 0;
  19.         for(int j=1;j<i;j++)
  20.             if(x[j]==x[i]) return 0;
  21.     }
  22.     if(i==m)
  23.     {
  24.         int dif=0;
  25.         for(int j=1;j<=m;j++)
  26.             if(x[j]!=0) dif++;
  27.         if(dif!=n) return 0;
  28.     }
  29.     return 1;
  30. }
  31. void bekk(int x[],int n,int m,int i)
  32. {
  33.     for(int j=0;j<=n;j++)
  34.     {
  35.         x[i]=j;
  36.         if(valid(x,i,n,m))
  37.         {
  38.             if(i==m) afisare(x,m);
  39.             else bekk(x,n,m,i+1);
  40.         }
  41.     }
  42. }
  43. int main()
  44. {
  45.     int x[1000];
  46.     int n,m;
  47.     fin>>n>>m;
  48.     bekk(x,n,m,1);
  49.     return 0;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement