Pagini recente » Cod sursa (job #1750709) | Cod sursa (job #1037856) | Cod sursa (job #1107450) | Cod sursa (job #221689) | Cod sursa (job #165069)
Cod sursa(job #165069)
# include <stdio.h>
# include <stdlib.h>
int n,st[1000],p,k,a[100][100],i,j,m,x,y,F[100],kk;
FILE *f,*g;
void back(int k)
{
int i,x;
if (k==n+1) { // tiparesc solutia
y=y+1;
if (y==kk) {
g=fopen("dusman.out","w");
for (i=1;i<k;i++)
fprintf(g,"%d ",st[i]);
fprintf(g,"\n");
fclose(g);
exit;
}
}
else {
for (x=1;x<=n;x++)
{
st[k]=x;
// verific daca valoarea este valida
int ev=1;
if (F[st[k]]==1) ev=0;
else // verific daca sunt dusmani
if (k>1 && a[st[k]][st[k-1]]==1) ev=0;
if (ev) {
F[st[k]]=1;
back(k+1);
F[st[k]]=0;
}
}
}
}
int main()
{
f=fopen("dusman.in","r");
fscanf(f,"%d %d %d",&n,&kk,&m);
for (i=1;i<=m;i++)
{
fscanf(f,"%d %d",&x, &y);
a[x][y]=1;
a[y][x]=1;
}
fclose(f);
y=0;
back(1);
return 0;
}