Pagini recente » Cod sursa (job #1679776) | Cod sursa (job #866982) | Cod sursa (job #1750568) | Cod sursa (job #1473619) | Cod sursa (job #777239)
Cod sursa(job #777239)
#include<fstream>
using namespace std;
ifstream f("dusman.in");
ofstream g("dusman.out");
int n,k,m,i,length,start,nrord,terminat;
int enemy[1001][10];
int nrenemy[1001];
int viz[1001];
int buff[1001];
void afisare()
{for(int k=1; k<=n; k++)
g<<buff[k]<<" ";
g<<endl;
}
void bkt(int x)
{
if(terminat==0)
{
if(length>=n)
{nrord++;
if(nrord==k)
{afisare();
terminat=1;
return;}
}
else
{
for(int j=1; j<=n; j++)
if(viz[j]==0 && j!=enemy[x][1] && j!=enemy[x][2] && j!=enemy[x][3])
{length++;
viz[j]=1;
buff[length]=j;
bkt(j);
buff[length]=0;
viz[j]=0;
length--;}
}
}
}
int main()
{f>>n>>k>>m;
int a,b;
for(i=1; i<=m; i++)
{f>>a>>b;
nrenemy[a]++;
enemy[a][nrenemy[a]]=b;
nrenemy[b]++;
enemy[b][nrenemy[b]]=a;}
nrord=0;
for(start=1; start<=n; start++)
{if(terminat==1)
break;
length=1;
viz[start]=1;
buff[length]=start;
bkt(start);
buff[length]=0;
viz[start]=0;
}
f.close();
g.close();
return 0;}