Cod sursa(job #885016)

Utilizator costyv87Vlad Costin costyv87 Data 21 februarie 2013 16:02:46
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
//HighFlow
#include <cstdio>
#include <vector>
#include <string>
#include <bitset>
#include <string.h>
#include <math.h>
#include <algorithm>
#define fcat(c) while (c!='\n') fscanf(f,"%c",&c)
#define cat(c) while (c!='\n') scanf("%c",&c)
#define For(i,st,dr,k) for (int i=st;i<=dr;i+=k)
#define ll (long long)
using namespace std;
FILE *f,*g;
int st[9],n;

inline bitset<1> ok(int k)
{
    for (int i=0;i<k;i++) if (st[i]==st[k]) return false; return true;
}

inline void tipar()
{
    for (int i=1;i<=n;i++) fprintf(g,"%d ",st[i]); fprintf(g,"\n");
}


void back(int k)
{
    int i;
    for (i=1;i<=n;i++)
    {
        st[k]=i;
        if (ok(k)[0])
        {
            if (k==n)
                tipar();
            else
                back(k+1);
        }
    }
}




int main()
{
    f=fopen("permutari.in","r");
    g=fopen("permutari.out","w");

    fscanf(f,"%d",&n);
    back(1);

	return 0;
}