1 solutions
-
0
C++ :
#include<iostream> #include<cstdio> #include<cstdlib> #include<cmath> #include<string> using namespace std; int a[100]; bool b[100]={0}; int n,m; void se(int k) { if(k>m) { for(int i=1;i<=m;++i) printf("%3d",a[i]); cout<<endl; } else for(int i=1;i<=n;++i) if(!b[i]&&i>a[k-1]) { a[k]=i; b[i]=1; se(k+1); b[i]=0; } } int main() { cin>>n>>m; se(1); return 0; }
Pascal :
var a,b:array[1..100] of longint;n,i,m:longint; procedure try(x,y:longint); var i:longint; begin if x=m then begin for i:=1 to m do write(b[i]:3);writeln;exit;end; for i:=y+1 to n+x-m+1 do begin b[x+1]:=i;try(x+1,i);b[x+1]:=0; end; end; begin readln(n,m); for i:=1 to n do a[i]:=i; try(0,0); end.
- 1
Information
- ID
- 678
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By