Cod sursa(job #3249784)

Utilizator DARIUSQSSDarius Nicoara DARIUSQSS Data 17 octombrie 2024 20:24:47
Problema Dusman Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <bits/stdc++.h>
#include <cstdlib>

using  namespace std;

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

int sol[1001];
int frec[1001][1001];
int fr[1001];
int n, numar, m;
int sum = 0;

bool check(int k)
{
    if(frec[sol[k]][sol[k - 1]]) return 0;
    return 1;
}

void print(int k)
{
    for(int i = 1; i <= k; i++) fout << sol[i] << ' ';
    fout << '\n';
}

void back(int k)
{
    for(int i = 1; i <= n; i++)
    {
        if(fr[i]) continue;
        sol[k] = i;
        fr[i] = 1;
        if(check(k))
        {
            if(k == n)
            {
                numar--;
                if(!(numar))
                {
                    print(k);
                    exit(0);
                }
            }
            else back(k + 1);
        }
        fr[i] = 0;
    }

}

int main()
{
    fin >> n >> numar >> m;
    for(int i = 1; i <= m; i++) 
    {
        int x, y;
        fin >> x >> y;
        frec[x][y] = frec[y][x] = 1;
    }
    back(1);
}