http://acm.hdu.edu.cn/showproblem.php?pid=1716
题记:题目不难,用next_permutation即可,格式十分坑人。除了第一次输入四个数字和输入四个数字都为0这两种情况,其余输入都要加一个换行。(坑人的格式,PE了我一下午)
即:
#include<bits/stdc++.h>
using namespace std;
int a[5];
int main(){
int flag=0;
while(cin>>a[1]>>a[2]>>a[3]>>a[4]){
if(a[1]==0&&a[2]==0&&a[3]==0&&a[4]==0)
break;
sort(a+1,a+5);
if(flag!=0)
cout<<endl;
flag++;
int sum=a[1];
if(a[1]!=0)for(int i=1;i<=4;i++)cout<<a[i];
while(next_permutation(a+1,a+5)){
if(a[1]==0)continue;
if(a[1]!=sum){
if(sum!=0)
cout<<endl;
sum=a[1];
}
else
cout<<" ";
for(int i=1;i<=4;i++)
cout<<a[i];
}
cout<<endl;
}
return 0;
}