Pagini recente » Cod sursa (job #2810972) | Cod sursa (job #1175243) | Cod sursa (job #2020272) | Cod sursa (job #2949667) | Cod sursa (job #150115)
Cod sursa(job #150115)
#include<fstream.h>
#define max 1005
int s[max+1], k, n, m, nr_sol;
char a[max][max], use[max];
ifstream f("dusman.in");
ofstream g("dusman.out");
void back();
void write();
void read();
int corect(int o);
int main()
{ read();
back();
g.close();
return 0;
}
void back()
{ int i;
i=1; s[i]=0; nr_sol=0;
while(i!=0)
if(s[i]<n)
{ s[i]++;
if(corect(i))
{ if(i==n && nr_sol<k)
{ nr_sol++;
if(nr_sol==k)
{ write();
return;
}
}
else
{ if(i<n)
{ use[s[i]]=1;
i++;
s[i]=0;
}
}
}
}
else
{ i--;
use[s[i]]=0;
}
}
int corect(int o)
{ int i, ok=1;
if(use[s[o]]==1)
ok=0;
if(a[s[o]][s[o-1]])
ok=0;
return ok;
}
void read()
{ int i, x, y;
f>>n>>k>>m;
for(i=0; i<m; i++)
{ f>>x>>y;
a[x][y]=1;
a[y][x]=1;
}
}
void write()
{ int i;
for(i=1; i<=n; i++)
{ g<<s[i]<<' ';
}
}