Cod sursa(job #2682985)

Utilizator BAlexandruBorgovan Alexandru BAlexandru Data 10 decembrie 2020 08:59:53
Problema Dusman Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>

using namespace std;

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

int n, k, m;
bool dusmani[1001][1001];

bool used[1001];
int sol[1001], nrSol;

void bkt(int niv)
{
    if (nrSol >= k)
        return;

    for (int i=1; i<=n; i++)
        if (!used[i] && !dusmani[i][sol[niv-1]])
        {
            sol[niv] = i;
            used[i] = true;

            if (niv == n)
            {
                nrSol++;

                if (nrSol == k)
                {
                    for (int i=1; i<=n; i++)
                        g << sol[i] << " ";

                    return;
                }
            }
            else
                bkt(niv + 1);

            sol[niv] = 0;
            used[i] = false;
        }
}

int main()
{
    f >> n >> k >> m;

    for (int i=1; i<=m; i++)
    {
        int x, y; f >> x >> y;
        dusmani[x][y] = true;
        dusmani[y][x] = true;
    }

    bkt(1);

    return 0;
}