Cod sursa(job #1873135)

Utilizator pibogaBogdan piboga Data 8 februarie 2017 20:06:04
Problema Dusman Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <fstream>
#include <cstring>
#include <algorithm>

using namespace std;

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

int x[1010],n,v[1010],i,k,z,p,m,q,w;
bool ok;
int a[1010][1010];

bool sol(int k)
{
    if (k==n) return 1;
    return 0;
}

void af()
{
    for (i=1;i<=n;++i)
    {
        fout << x[i] <<' ';
    }
}

void bc(int k)
{
    int i;
    for (i=1;i<=n;++i)
    {

        if (v[i]==0 && !a[i][x[k-1]] )
        {
            x[k]=i;
            v[i]=1;

            if (sol(k))
            {
                ++z;
                if (z==p && !ok)
                {
                    af();
                    ok=1;
                    return;
                }
            }
            else
            {
                bc(k+1);
            }
            v[i]=0;
        }

    }
}

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

    for (i=1;i<=m;++i)
    {
        fin >> q >> w;
        a[q][w]=a[w][q]=1;
    }

    bc(1);

    return 0;
}