HDU 1726. 排列2(next_permutation应用)
原题链接
简单
作者:
ZhinKuojia
,
2024-09-05 19:45:59
,
所有人可见
,
阅读 3
#include<bits/stdc++.h>
using namespace std;
int a[5];
int main(){
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
while(cin >> a[1] >> a[2] >> a[3] >> a[4] && (a[1]+a[2]+a[3]+a[4] != 0)){
sort(a + 1, a + 5);
int tmp = -1;
bool first = true;
do{
if(a[1] != 0){ // 过滤 0 开头
if(a[1] != tmp){ // 第一个元素变化,换行
if(!first) cout << '\n'; // 若是该行第一个元素,则不用换行
tmp = a[1];
first = false;
}
for(int i = 1; i <= 4; i ++) cout << a[i];
cout << ' ';
}
}while(next_permutation(a + 1, a + 5));
cout << '\n' << '\n';
}
return 0;
}