Cod sursa(job #472231)

Utilizator darrenRares Buhai darren Data 23 iulie 2010 14:48:46
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>

using namespace std;

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

void Read();
void Back(int p);
void Write();

int n, m, k;
int a[1001][1001], b[1001];
bool x[1001];

int main()
{
    Read();
    Back(1);
}

void Read()
{
    fin >> n >> k >> m;
    for (int i = 1, n1, n2; i <= m; ++i)
    {
        fin >> n1 >> n2;
        a[n1][n2] = 1;
        a[n2][n1] = 1;
    }
}

void Back(int p)
{
    if (k < 0) return;
    if (p == n + 1)
    {
        --k;
        if (k == 0) Write();
        return;
    }
    for (int i = 1; i <= n; ++i)
        if (!x[i] && (p == 1 || a[b[p - 1]][i] == 0))
        {
            x[i] = 1;
            b[p] = i;
            Back(p + 1);
            x[i] = 0;
        }
}

void Write()
{
    for (int i = 1; i <= n; ++i)
        fout << b[i] << ' ';
}