Pagini recente » Cod sursa (job #879641) | Cod sursa (job #2829409) | Cod sursa (job #2894447) | Cod sursa (job #1496674)
#include <algorithm>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
struct rai{
int a,b;
};
int compare(struct rai A, struct rai B){
return A.a < B.a;
}
int mark[1010];
int coloana[1010];
int n,k,m;
struct rai dusman[3010];
int verif(int level){
int i;
if(level==1){
return 1;
}
for(i=1;i<=m;i++){
if( (coloana[level-1]==dusman[i].a && coloana[level]==dusman[i].b) ||
(coloana[level-1]==dusman[i].b && coloana[level]==dusman[i].a) )
{
return 0;
}
}
return 1;
}
void genperm(int level){
int i,j,rez;
for(i=1;i<=n;i++){
if(mark[i]==0){
coloana[level]=i;
rez=verif(level);
if(rez==0){
coloana[level]=0;
continue;
}
mark[i]=1;
if(level==n){
//k--;
if(k!=0){
for(j=1;j<=n;j++){
printf("%d ",coloana[j]);
}
printf("\n");
}
}else{
genperm(level+1);
}
}else{
continue;
}
mark[i]=0;
coloana[level]=0;
}
}
int main()
{
int i;
freopen("dusman.in","r",stdin);
freopen("dusman.out","w",stdout);
scanf("%d%d%d",&n,&k,&m);
for(i=1;i<=m;i++){
scanf("%d%d",&dusman[i].a,&dusman[i].b);
}
genperm(1);
// sort(dusman+1, dusman+m, compare);
return 0;
}