Cod sursa(job #2108339)
Utilizator | Data | 18 ianuarie 2018 08:37:25 | |
---|---|---|---|
Problema | Generare de permutari | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.86 kb |
#include <fstream>
using namespace std;
bool visited[8];
int main()
{
ifstream in("permutari.in");
ofstream out("permutari.out");
short N;
in>>N;
short k=0,result[8]={-1,-1,-1,-1,-1,-1,-1,-1};
while(k>=0){
bool t=false;
for(short i=result[k]+1;i<N;++i){
if(!visited[i]){
result[k]=i;
visited[i]=true;
t=true;
break;
}
}
if(t==false || k==N-1){
if(k==N-1){
for(short i=0;i<N;++i){
out<<result[i]+1<<" ";
}
out<<"\n";
}
visited[result[k]]=false;
result[k]=-1;
k--;
if(k>=0)visited[result[k]]=false;
}
else{
k++;
}
}
}