Cod sursa(job #893398)

Utilizator adnionutCojocaru Ionut adnionut Data 26 februarie 2013 15:27:47
Problema Dusman Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.39 kb
#include <fstream>
using namespace std;
ifstream fin("dusman.in");
ofstream fout("dusman.out");
int n,m,k,nr,b,c,l,x[1001],v[1001],a[1001][1001];
int cont (int k)
{
    if((k>1&&a[x[k]][x[k-1]]==1)||(k==n&&a[x[k]][x[1]]==1))
        return 0;
    return 1;
 }
void afisare(int k)
{
    for(int i=1;i<=k;i++)
        fout<<x[i]<<" ";

}
void back(int k)
{
    k=1;x[k]=0;
    while(k>0)
        if(x[k]<n)
        {
            x[k]++;
            if(v[x[k]]==0)
                        if(cont(k))
                        {
                            v[x[k]]=1;
                            if(k==n)
                            {
                                nr++;
                                if(nr==l)
                                {
                                    afisare(k);
                                    return ;
                                }
                                v[x[k]]=0;
                            }
                            else
                            {
                                k++;
                                x[k]=0;
                            }
                        }
        }
        else
        {
            k--;
            v[x[k]]=0;
        }

}


int main()
{
    fin>>n>>l>>m;
   for(int i=1;i<=m;i++){
      fin>>b>>c;
      a[b][c]=1;
      a[c][b]=1;
   }
   back();

}