Cod sursa(job #1117264)

Utilizator s1mpMihai Alexandru s1mp Data 23 februarie 2014 12:39:05
Problema Dusman Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<iostream>
#include<fstream>
 
#define Nmax 1003
 
using namespace std;
 
ifstream f("dusman.in");
ofstream g("dusman.out");
 
int N, M, K;
int X[Nmax][Nmax], b[Nmax], viz[Nmax];
int numarOrd;
 
void BK( int k ) {
    if ( k == N + 1 ) {
        numarOrd ++;
        if ( numarOrd == K ) {
            for ( int i = 1; i <= N; i ++ ) {
                g << b[i] << " ";
            }
            return;
        }
    } else {
        for( int i = 1; i <= N; i ++ ) {
            if ( X[i][b[k-1]] == 0 && viz[i] == 0 ) {
                b[k] = i;
                viz[i] = 1;
                BK( k + 1 );
                viz[i] = 0;
            }
        }
    }
}
 
int main() {
    f >> N;
    f >> K;
    f >> M;
    for ( int i = 1; i <= M; i ++ ) {
        int a, b;
        f >> a;
        f >> b;
        X[a][b] = 1;
        X[b][a] = 1;
    }
    BK(1);
    f.close();
    g.close();
    return 0;
}