Cod sursa(job #778992)

Utilizator visanrVisan Radu visanr Data 16 august 2012 14:17:29
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <cstdio>
#include <cstdlib>
#include <cmath>
using namespace std;


int A[1010][1010], N, K, M, X, Y, sol[1010];
bool used[1010];

void print()
{
     for(int i = 1; i <= N; i++) printf("%i ", sol[i]);
     printf("\n");
}


void BKT(int l)
{
     if(K < 0)
     {
          return ;
     }
     
     if(l > N)
     {
          if( --K == 0) print();
          return ;
     }
     
     for(int i = 1; i <= N; i++)
     {
             if(!used[i] && !A[ sol[l - 1] ][i])
             {
                      sol[l] = i;
                      used[i] = true;
                      BKT(l + 1);
                      used[i] = false;
             }
     }
}

int main()
{
    freopen("dusman.in", "r", stdin);
    freopen("dusman.out", "w", stdout);
    int i;
    scanf("%i %i %i", &N, &K, &M);
    for(; M; M --)
    {
          scanf("%i %i", &X, &Y);
          A[X][Y] = A[Y][X] = 1;
    }
    BKT(1);
    return 0;
}