Pagini recente » Cod sursa (job #1176644) | Cod sursa (job #299596) | Istoria paginii propuneri/11-rating | Cod sursa (job #2920160) | Cod sursa (job #976879)
Cod sursa(job #976879)
#include<fstream>
#include<bitset>
using namespace std;
int n;
char a[15],N;
bitset< 10 >use;
ofstream fout("permutari.out");
inline void Back(int k)
{
if(k==n+1)//am terminat de construit solutia
{
int i;
for(i=1;i<=n;++i)
fout<<a[i]<<" ";
fout<<"\n";
}
else
{
for (char i = '1';i <= N ;i++)
if(use[int(i-'0')]==0)//daca numarul nu l-am mai folosit pe i in pozitiile anterioare
{
a[k] = i;//punem pe pozitia k pe i
use[i-'0'] = 1;//il marcam ca folosit
Back(k+1);//mergem pe pozitia k+1
use[i-'0'] = 0;//dupa ce revenim din apelul recursiv cifra i este libera
}
}
}
int main()
{
ifstream fin("permutari.in");
fin>>n;
N = char(n+'0');
fin.close();
Back(1);//pornim sa construim solutia de la pozitia 1
fout.close();
return 0;
}