using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace p21_permutari
{
class Program
{
static void afis(int n, int[] x, string fis)
{//afisare solutie
StreamWriter fout = new StreamWriter(fis, true);//reschidere pt adaugare
for (int i = 0; i < n; i++) fout.Write(x[i] + " ");
fout.WriteLine();
fout.Close();
}
static void back(int n, int[] x, bool[] p, int k)
{//generare permutari
for(int i=1;i<=n;i++)//fiecare elem. al multimii {1,2,...n}
if (!p[i])//daca nu e pus in solutie
{
x[k] = i;//il plasam pe i in solutie
p[i] = true;//il marcam pe i ca pus
if (k == n - 1) afis(n, x, "permutari.txt");//s-au plasat toane n => solutie
else back(n, x,p, k + 1);//altfel pasul urmator (pozitia urmatoare)
p[i] = false;//scot din solutie pe i
}
}
static void Main(string[] args)
{
int[] x;//vectorul solutie
bool[] p;//true daca elem. e pus, false in caz contrar
int n;
n = int.Parse(Console.ReadLine());//citesc n
x = new int[n];//creez vector solutie
p = new bool[n+1];//creez vector true/false
back(n, x, p, 0);//incep cu pozitia 0
}
}
}
|