Cod sursa(job #160692)

Utilizator RobytzzaIonescu Robert Marius Robytzza Data 16 martie 2008 17:40:48
Problema Dusman Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <stdio.h>
#define MAX 2010

int sir[MAX],m,k,n,viz[MAX];
int a[MAX][MAX],ok=1;

void citire()
{
  freopen ("dusman.in","r",stdin);
  int x,y;
   scanf ("%d%d%d",&n,&k,&m);
   for (int i=0;i<n;i++)
   {
      scanf ("%d %d",&x,&y);
      a[x][y]=1;
      a[y][x]=1;
   }
   fclose(stdin);
}

void afisare ()
{
  freopen ("dusman.out","w",stdout);
   for (int i=1;i<=n;i++)
      printf ("%d ",sir[i]);
   printf ("\n");
   fclose (stdout);
}

void back (int k1)
{
  if (k>0)
  {
  if ((k1-1)==n)
  {
     if (k==1 && ok==1)
     {
       ok=0;
       afisare();
       k=-1;
       return ;
     }
  k--;
  return ;
  }
    for (int i=1;i<=n;i++)
    {
      if (a[sir[k1-1]][i]==0 && !viz[i])
      {
	sir[k1]=i;
	viz[i]=1;
	back(k1+1);
	viz[i]=0;
      }
    }
  }
}

int main ()
{
  citire();
  back(1);
  return 0;
}