Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- using namespace std;
- ifstream fin("date.in");
- ofstream fout("date.out");
- void afisare(int x[],int n)
- {
- for(int i=1;i<=n;i++)
- fout<<x[i]<<' ';
- fout<<'\n';
- }
- bool valid(int x[],int i,int n,int m)
- {
- if(x[i]!=0)
- {
- if(i>1) if(x[i-1]!=0) return 0;
- for(int j=1;j<i;j++)
- if(x[j]!=0 && x[j]>x[i]) return 0;
- for(int j=1;j<i;j++)
- if(x[j]==x[i]) return 0;
- }
- if(i==m)
- {
- int dif=0;
- for(int j=1;j<=m;j++)
- if(x[j]!=0) dif++;
- if(dif!=n) return 0;
- }
- return 1;
- }
- void bekk(int x[],int n,int m,int i)
- {
- for(int j=0;j<=n;j++)
- {
- x[i]=j;
- if(valid(x,i,n,m))
- {
- if(i==m) afisare(x,m);
- else bekk(x,n,m,i+1);
- }
- }
- }
- int main()
- {
- int x[1000];
- int n,m;
- fin>>n>>m;
- bekk(x,n,m,1);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement