Pagini recente » Cod sursa (job #2433742) | Cod sursa (job #1191212) | Cod sursa (job #1309047) | Cod sursa (job #1472668) | Cod sursa (job #116767)
Cod sursa(job #116767)
#include<fstream.h>
ifstream f("dusman.in");
ofstream g("dusman.out");
typedef int stiva[1000];
stiva st;
int a[10][10],n,m,x,nr=0;
void init(int k)
{ st[k]=0;}
int succesor(int k)
{ if(st[k]<n){st[k]++;
return 1;}
else return 0;
}
int verifica(int k)
{ for( int i=1;i<=m;i++)
if((st[k-1]==a[i][1]&&st[k]==a[i][2])||(st[k-1]==a[i][2]&&st[k]==a[i][1]))
return 0;
return 1;
}
int valid(int k)
{
if(!verifica(k))return 0;
for(int j=1;j<k;j++)
if(st[j]==st[k])
return 0;
return 1;
}
int solutie(int k)
{return k==n;}
void tipar()
{ for(int i=1;i<=n;i++)
g<<st[i]<<" ";
}
void back(int k,int &nr)
{ init(k);
while(succesor(k))
if(valid(k))
if(solutie(k))
{ nr++;
if(nr==x)tipar();}
else back(k+1,nr);
}
int main()
{f>>n>>x>>m;
int nr=0;
for(int i=1;i<=m;i++)
f>>a[i][1]>>a[i][2];
back(1,nr);
return 0;}