Pagini recente » Cod sursa (job #2375328) | Cod sursa (job #2772810) | Cod sursa (job #2411002) | Cod sursa (job #406878) | Cod sursa (job #1117301)
#include<stdio.h>
#define DIM 1005
FILE *f=fopen("dusman.in","r"), *g=fopen("dusman.out","w");
long int n, k, m, a[DIM][DIM], used[DIM], st[DIM], stop=0;
// a[ i ][ j ] = daca i si j sunt dusmani (1) sau nu (0)
// used = daca a fost utilizat nr sau nu
// st = asezarea
void citire(){
long int i, x, y;
fscanf(f,"%ld %ld %ld\n",&n,&k,&m);
for(i=1;i<=m;i++){
fscanf(f,"%ld %ld\n",&x,&y);
a[x][y]=1; a[y][x]=1;
}
}
void adauga(){
k--;
if( k==0 ){ for(long int i=1;i<=n;i++){fprintf(g,"%ld ",st[i]);}
stop=1; }
}
void back(long int h){
long int i;
if( h>n ) adauga();
else{
for(i=1;i<=n;i++){
if( used[i]==0 && a[ i ][ st[h-1] ]==0 ){
used[i]=1; st[h]=i;
back(h+1);
used[i]=0;
if(stop==1) return;
}
}
}
}
int main(){
citire();
back(1);
return 0;
}