1 solutions

  • 0
    @ 2024-12-11 0:16:56

    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