Cod sursa(job #3141936)

Utilizator andreipirjol5Andrei Pirjol andreipirjol5 Data 17 iulie 2023 19:01:00
Problema Dusman Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>

using namespace std;
ifstream fin ("dusman.in");
ofstream fout ("dusman.out");

const int NMAX = 1e3;
bool enemy[NMAX + 5][NMAX + 5], fr[NMAX + 5];
int n, k, m, cnt, v[NMAX + 5];

void output()
{
    for(int i = 1; i <= n; i++)
        fout << v[i] << ' ';
}

void bkt(int ind)
{
    if(ind == n + 1)
    {
        cnt++;
        if(cnt == k)
        {
            output();
            exit(0);
        }
    }
    else
    {
        for(int i = 1; i <= n; i++)
            if(fr[i] == 0 and enemy[v[ind - 1]][i] == 0)
            {
                v[ind] = i;
                fr[i] = 1;

                bkt(ind + 1);
                fr[i] = 0;
            }
    }
}

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

    for(int i = 1; i <= m; i++)
    {
        int pers1, pers2;
        fin >> pers1 >> pers2;
        enemy[pers1][pers2] = 1;
        enemy[pers2][pers1] = 1;
    }

    bkt(1);

    fin.close();
    fout.close();
    return 0;
}