Pagini recente » Cod sursa (job #1285294) | Cod sursa (job #2802964) | Cod sursa (job #3039856) | Cod sursa (job #3150424) | Cod sursa (job #2477070)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("dusman.in");
ofstream fout("dusman.out");
const int MAXN = 1010;
int N, M, K;
int nrsol = 0;
bool killMe = false;
int A[MAXN];
bool used[MAXN];
int D[MAXN][MAXN];
void backtrack(int step, int N, int A[MAXN], bool used[MAXN]) {
if (step > N) {
nrsol++;
if (nrsol == K) {
for (int i = 1; i <= N ;i++) fout << A[i] << " ";
killMe = true;
exit(0);
}
return ;
}
if (killMe) return;
for (int i = 1; i <= N; i++) {
if ( used[i] == false && D[i][ A[i - 1] ] == 0) {
used[i] = true;
A[step] = i;
backtrack(step + 1, N, A, used);
used[i] = false;
}
}
}
int main() {
fin >> N >> K >> M;
for(int i = 1; i <= N; i++) A[i] = i;
for (int x,y; M--;) {
fin >> x >> y;
D[x][y] = 1;
D[y][x] = 1;
}
backtrack(1, N, A, used);
//cout << endl << nrsol;
return 0;
}