您的位置:首页 > 其它

HDU 1716 排列2

2017-01-24 18:00 316 查看
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
vector<int> v[10];
int main()
{
int a[5];
bool first=true;
while(scanf("%d%d%d%d",&a[1],&a[2],&a[3],&a[4])&&(a[1]+a[2]+a[3]+a[4]))
{
if(!first) cout<<endl;first=false;
for(int i=0;i<=9;i++) v[i].clear();
sort(a+1,a+5);
int a1=a[1],a2=a[2],a3=a[3],a4=a[4];
do{
if(a[1]==0) continue;
v[a[1]].push_back(a[1]*1000+a[2]*100+a[3]*10+a[4]);
}while(next_permutation(a+1,a+5));
for(int i=1;i<=9;i++){
if(v[i].size())
{
for(int j=0;j<v[i].size();j++){
printf("%s%d",j==0?"":" ",v[i][j]);
}
cout<<endl;
}
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: