Pagini recente » Cod sursa (job #2984455) | Cod sursa (job #3200657) | Cod sursa (job #2733292) | Cod sursa (job #140430) | Cod sursa (job #124281)
Cod sursa(job #124281)
#include <stdio.h>
long n,k,m,i,j,c,a,b,d[1002][4],perm[1002];
bool ok;
void PrintPerm() {
ok=1;
for (i=1;i<n;i++){
for (j=1;j<=d[perm[i]][0];j++)
if (perm[i+1]==d[perm[i]][j]){ok=0;break;}
if (!ok)break;
}
c+=ok;
if(c==k){for (i=1;i<=n;i++)printf("%ld ",perm[i]);printf("\n");}
}
void swap(int i, int j) {
int temp;
temp = perm[i];
perm[i] = perm[j];
perm[j] = temp;
}
void Next() {
int k,j,r,s;
k = n-1;
while (perm[k]>perm[k+1]) k--;
j = n;
while (perm[k] > perm[j]) j--;
swap(j,k);
r = n; s = k+1;
while (r>s){
swap(r,s);
r--; s++;
}
PrintPerm();
}
int main(){
freopen("dusman.in","r",stdin);
freopen("dusman.out","w",stdout);
scanf("%ld %ld %ld",&n,&k,&m);
for (i=1;i<=m;i++){
scanf("%ld %ld",&a,&b);
d[a][0]++;
d[a][d[a][0]]=b;
d[b][0]++;
d[b][d[b][0]]=a;
}
for (i=1;i<=n;i++)perm[i]=i;
PrintPerm();
c=0;
while (c<k){
Next();
}
//for (i=1;i<=n;i++)printf("%ld ",perm[i-1]);
//printf("\n");
return 0;
}