Cod sursa(job #1228537)

Utilizator antirsi96Sergiu Marin antirsi96 Data 14 septembrie 2014 15:36:54
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.13 kb
#include <iostream>
#include <iomanip>
#include <fstream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cctype>
#include <cstring>
#include <ctime>
#include <cassert>
#include <string>
#include <sstream>
#include <vector>
#include <map>
#include <set>
#include <stack>
#include <algorithm>
#include <utility>
#include <queue>
#include <deque>
#include <list>
#include <iterator>
#include <limits>
#include <numeric>
#include <functional>

using namespace std;

#define nl "\n"

typedef long long ll;
typedef unsigned long ulong;
typedef unsigned int uint;
typedef unsigned char uchar;

const double PI = acos(-1.0);

int v[100],n;

ifstream fin("permutari.in");
ofstream fout("permutari.out");

void print(int k)
{
   for(int i=1;i<=k;i++)
      fout<<v[i]<< " ";
   fout<<nl;
}

int valid(int k)
{
   for(int i=1;i<=k-1;i++)
      if(v[k]==v[i])
	 return 0;
   return 1;
}

void bk(int k)
{
   int i;
   for(i=1;i<=n;i++)
   {
      v[k]=i;
      if(valid(k))
	 if(k==n)
	    print(k);
	 else bk(k+1);
   }
}

int main()
{
   fin>>n;
   bk(1);
   return 0;
}