Cod sursa(job #985191)

Utilizator AlexandruValeanuAlexandru Valeanu AlexandruValeanu Data 16 august 2013 19:45:48
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <iostream>
#include <fstream>

using namespace std;

#define Nmax 1002

bool dusman[Nmax][Nmax];
bool viz[Nmax];
int stiva[Nmax];

int N, K, M;

void read()
{
    ifstream f("dusman.in");

    f >> N >> K >> M;

    for ( int i = 1, A, B; i <= M; ++i )
    {
        f >> A >> B;

        dusman[A][B] = dusman[B][A] = 1;
    }

    f.close();
}

void print()
{
    K--;

    if ( K == 0 )
    {
        ofstream g("dusman.out");

        for ( int i = 1; i <= N; ++i )
                g << stiva[i] << " ";

        g << '\n';
    }
}

void back( int k )
{
    if ( !K )
            return;

    if ( k == N+1 )
        print();
    else
        for ( int i = 1; i <= N; ++i )
                if ( !viz[i] && !dusman[ stiva[k - 1] ][i] )
                {
                    stiva[k] = i;
                    viz[i] = 1;
                    back( k + 1 );
                    viz[i] = 0;

                }
}

int main()
{
    read();
    back( 1 );

    return 0;
}