Cod sursa(job #2478433)

Utilizator stan_flaviusStan Flavius Stefan stan_flavius Data 22 octombrie 2019 02:04:59
Problema Dusman Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <fstream>
#include <algorithm>
#define nmax 1001

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

int a[nmax][nmax];
int n,val,m;
int viz[nmax],x[nmax];
int ct;

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

void Back(int k)
{
    for(int i=1; i<=n; i++)
        if(viz[i]==0)
            {
                viz[i]=1;
                x[k]=i;
                if(valid(k))
                    if(k==n)
                        {
                            ct++;
                            if(ct==val)
                                {
                                    for(int i=1; i<=n; i++)
                                         fout<<x[i]<<" ";
                                    exit(EXIT_SUCCESS);
                                }

                        }
                    else Back(k+1);
                viz[i]=0;
            }
}
int main()
{
    fin>>n>>val>>m;
    for(int i=1; i<=m; i++)
        {
            int x,y;
            fin>>x>>y;
            a[x][y]=a[y][x]=1;
        }

    Back(1);

    return 0;
}