Cod sursa(job #413372)

Utilizator yrarBogdan Ionut yrar Data 8 martie 2010 13:41:00
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>

using namespace std;

void bkt(int k);
void afis();
int verif();

int f[1002], n, uz[1002], nr, p, m, a[1002][1002], q=1;

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

int main()
{
    int i, j;
    in >> n >> p >> m;
    while(!in.eof())
    { 
       in >> i >> j;
       a[i][j] = a[j][i] = 1;
    }
    bkt(1);
    return 0;
}

void bkt(int k)
{
     if(k-1==n)
       if(verif()) q=0;
       else;
     else if(q)
       for(int i=1; i<=n; i++)
         if(!uz[i] && !a[f[k-1]][i])
         { f[k]=i;
           uz[i]=1;
           bkt(k+1);
           uz[i]=0;
         }
}

void afis()
{
     for(int i=1; i<=n; i++)
       out << f[i] << " ";
     out << "\n";
} 

int verif()
{
     ++nr;
     if(nr==p) { afis();
                 return 1;
               }
     return 0;
}