Cod sursa(job #2194192)

Utilizator RSiminicaSiminica Razvan RSiminica Data 12 aprilie 2018 16:05:50
Problema Dusman Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.18 kb
#include <fstream>

using namespace std;
ifstream f("dusman.in");
ofstream g("dusman.out");
int n,m,p,d[1001][5],x[1001],v[1001],i,contor,a,b;
int cond(int k)
{
    for(int i=1;i<k;i++)
    {
        for(int j=1;j<=3;j++)
            if(d[x[i]][j]==x[i+1])
                return 0;
    }
    return 1;
}
void back1(int k)
{
    for(int i=1;i<=n;i++)
    {
        if(v[i]==0)
        {
            v[i]=1;
            x[k]=i;
            if(k==n)
            {
                if(cond(k)==1)
                {
                    contor++;
                    if(contor==p)
                    {
                        for(int j=1;j<=k;j++)
                        {
                            g<<x[j]<<" ";
                        }
                        n=0;
                    }
                }

            }
            else
            {
                back1(k+1);
            }
            v[i]=0;
        }
    }
}
int main()
{
    f>>n>>p>>m;
    contor=0;
    for(i=1;i<=m;i++)
    {
        f>>a>>b;
        d[a][0]++;
        d[a][d[a][0]]=b;
        d[b][0]++;
        d[b][d[b][0]]=a;
    }
    back1(1);
    return 0;
}