Cod sursa(job #2607331)
Utilizator | Data | 29 aprilie 2020 16:57:03 | |
---|---|---|---|
Problema | Generare de permutari | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.61 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("permutari.in");
ofstream out("permutari.out");
int n,k,st[10];
bool v,ac;
void suc(){
if(st[k]<n){
st[k]++;
ac=1;
}else ac=0;
}
void valid(){
v=1;
for(int i=1;i<k;i++)
if(st[i]==st[k]) v=0;
}
void back(){
k=1;
st[k]=0;
while(k>0){
do{
suc();
if(ac) valid();
}while(ac && !v);
if(ac){
if(k==n){
for(int i=1;i<=n;i++){
out <<st[i]<<" ";
}
out <<"\n";
}else{
k++;
st[k]=0;
}
}else k--;
}
}
int main(){
in >>n;
back();
return 0;
}