Pagini recente » Cod sursa (job #1655476) | Cod sursa (job #2336378) | Cod sursa (job #1730073) | Cod sursa (job #1209700) | Cod sursa (job #981147)
Cod sursa(job #981147)
//12.09
#include <iostream>
#include <fstream>
using namespace std;
int n,k,kk,m,x[1005],sol,apar[1005];
bool a[1005][1005];
int next()
{
int i;
if (k==1 && x[k]<n){
x[k]++; apar[x[k]]++; return 1;
}
for (i=x[k]+1;i<=n;i++)
if (i!=x[k-1])
if (a[x[k-1]][i]==0)
if (!apar[i])
{
x[k]=i;
apar[i]++;
return 1;
}
return 0;
}
int main()
{
int i,xx,y,ok;
fstream f,g;
f.open("dusman.in",ios::in);
g.open("dusman.out",ios::out);
f>>n>>kk>>m;
for (i=1;i<=m;i++)
{
f>>xx>>y;
a[xx][y]=a[y][xx]=1;
}
k=1;
while (k>0)
{
ok=0;
while (x[k]<n && ok==0)
{
ok= next();
if (ok==0)
break;
}
if (ok==1)
if (k==n)
{
sol++;
if (sol==kk)
{
for (i=1;i<=n;i++)
g<<x[i]<<" ";
return 0;
}
}
else
{
k++;
x[k]=0;
}
else
{
apar[x[k]]=0;
k--;
apar[x[k]]=0;
}
}
}