Cod sursa(job #2479590)

Utilizator cameliapatileaPatilea Catalina Camelia cameliapatilea Data 23 octombrie 2019 23:44:19
Problema Dusman Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.18 kb
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("dusman.in");
ofstream g("dusman.out");
int n, m, k;
int A, B;
bool dusmani[1020][1020] = {false}, pas[1050] = {false};
int sol[1050] = {0};
int ok , verif;
void backTracking(int p, int n)
{
    if(ok == 1)
        return;
    if(p - 1 != n )
    {
        for(int i = 1; i <= n; i++) {
            int x = sol[p - 1];
            if (dusmani[x][i] == false && pas[i] == false) {
                sol[p] = i;
                pas[i] = true;
                verif = 1;
                backTracking(p + 1, n);
                pas[i] = false;

            }
        }
    }
   else
        {
            k--;
            if(k == 0)
            {
                for(int i = 1; i <= n; i++)
                    cout << sol[i] << " ";
                ok = 1;
                return;
            }
        }
}
int main()
{
    cin >> n >> k >> m;
    for(int i = 1; i <= m; i++)
    {
        cin >> A >> B;
        dusmani[A][B] = dusmani[B][A] = true;

    }
    /*
        *for(int i = 1; i <= m; i++)
        * {for(int j = 1; j <= m; j++)
        * cout << dusmani[i][j] << " ";
        * cout << endl;}
        */
    backTracking(1, n);

}