#588. NOIP2012TG-27
NOIP2012TG-27
27.(完善程序)
(排列数)输入两个正整数 ,在 中任取 个数,按字典序从小到大输出所有这样的排列。例如
输入:
3 2
输出:
1 2
1 3
2 1
2 3
3 1
3 2
#include<iostream>
#include<cstring>
using namespace std;
const int SIZE=25;
bool used[SIZE];
int data[SIZE];
int n,m,i,j,k;
bool flag;
int main()
{
cin>>n>>m;
memset(used,false,sizeof(used));
for(i=1;i<=m;i++)
{
data[i]=i;
used[i]=true;
}
flag=true;
while(flag)
{
for(i=1;i<=m-1;i++)cout<<data[i]<<"";
cout<<data[m]<<endl;
flag=____________________;
for(i=m;i>=1;i--)
{
____________________;
for(j=data[i]+1;j<=n;j++)if(!used[j])
{
used[j]=true;
data[i]=____________________;
flag=true;
break;
}
if(flag)
{
for(k=i+1;k<=m;k++)
for(j=1;j<=____________________;j++)if(!used[j])
{
data[k]=j;
used[j]=true;
break;
}
____________________;
}
}
}
}
①:{{ input(1) }}
②:{{ input(2) }}
③:{{ input(3) }}
④:{{ input(4) }}
⑤:{{ input(5) }}