Cod sursa(job #3325141)

Utilizator mateispnSpinu Matei mateispn Data 24 noiembrie 2025 20:43:26
Problema Dusman Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.26 kb
#include <fstream>
using namespace std;

ifstream cin("dusman.in");
ofstream cout("dusman.out");

int x[1001],n,F[1001],K,M,nr=0,a[1001][1001]={0};

void afis(int k)
{
    for(int i=1;i<=n;i++)
        cout<<x[i]<<" ";
    cout<<"\n";
}

bool valid(int k)
{
    if(k>1 && a[x[k-1]][x[k]]) return 0;
    return 1;
}

bool solutie(int k)
{
    return k==n;
}

void back(int k)
{
    if(nr==K) return;
    for(int i=1;i<=n;i++)
        if(!F[i])
        {
            x[k]=i;
            F[i]=1;
            if(valid(k))
            {
                if(solutie(k))
                {
                 nr++;
                 if (nr==K)
                 {
                     afis(k);
                     F[i]=0;
                     return;
                 }
                }
                 else {
                        back(k+1);
                        if(nr==K)
                        {
                            F[i]=0;
                            return;
                        }
                 }
            }

            F[i]=0;
        }
}

int main()
{
    cin>>n>>K>>M;
    for(int i=1;i<=M;i++)
    {
        int x,y;
        cin>>x>>y;
        a[x][y]=a[y][x]=1;
    }
    back(1);
    return 0;
}