Cod sursa(job #2682996)

Utilizator Florinos123Gaina Florin Florinos123 Data 10 decembrie 2020 09:53:02
Problema Dusman Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>

using namespace std;

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

int n, m, nr, cnt;

bool found;

int sol[1005];

bool used[10005];

bool a[1005][1005];

void Print ()
{
    for (int i=1; i<=n; i++)
        g << sol[i] << " ";
    g << "\n";
}

void Bkt (int k)
{
    if (!found)
    {
       for (int i=1; i<=n; i++)
       {
           if (!used[i] && !a[sol[k-1]][i])
           {
               sol[k] = i;
               used[i] = 1;

               if (k == n)
               {
                   cnt ++;
                   if (cnt == nr)
                   {
                       Print();
                       found = true;
                   }
               }
               else Bkt(k + 1);
               used[i] = 0;
           }
       }
    }
}

int main()
{
    f >> n >> nr >> m;
    for (int i=1; i<=m; i++)
    {
        int x, y;
        f >> x >> y;
        a[x][y] = a[y][x] = 1;
    }

    Bkt(1);

    return 0;
}