Pagini recente » Istoria paginii utilizator/stavarache.antonio | Cod sursa (job #1134443) | Profil iconiK | Clasament dupa rating | Cod sursa (job #115344)
Cod sursa(job #115344)
#include <cstdlib>
#include <stdio.h>
#include <math.h>
#include <algorithm>
using namespace std;
long i, m, n, k, v1[1000000], v2[1000000], vct[100010], z, j, sol, ok;
long ver() {
long ipr = 0, jpr = 0;
for (ipr = 1; ipr <= m; ++ipr) {
for (jpr = 1; jpr <= n; ++jpr) {
if (vct[jpr] == v1[ipr] && vct[jpr + 1] == v2[ipr]) {
return 1;
}
if (vct[jpr] == v2[ipr] && vct[jpr + 1] == v1[ipr]) {
return 1;
}
}
}
return 0;
}
void back(long lev) {
if (lev == n) {
if (ver() == 0) {
++sol;
if (sol == k) {
for (i = 1; i <= n; ++i) {
printf("%ld ", vct[i]);
}
printf("\n");
exit(0);
}
}
/* for (j = 1; j <= n; ++j) {
printf("%ld ", vct[j]);
}
printf("\n");*/
return;
}
for (long i = lev; i <= n; ++i) {
z = vct[lev];
vct[lev] = vct[i];
vct[i] = z;
back(lev + 1);
z = vct[lev];
vct[lev] = vct[i];
vct[i] = z;
}
}
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", &v1[i], &v2[i]);
}
for (i = 1; i <= n; ++i) {
vct[i] = i;
}
back(1);
return 0;
}