Pagini recente » Cod sursa (job #2397438) | Cod sursa (job #667834) | Cod sursa (job #1104426) | Cod sursa (job #3282546) | Cod sursa (job #2477101)
#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];
bool D[MAXN][MAXN];
void backtrack(int step, int maxN) {
//cout << step<< "\n";
if (killMe) {
exit(0);
return ;
}
if (step > N) {
nrsol++;
if (nrsol == K) {
for (int i = 1; i <= N ;i++) fout << A[i] << " ";
killMe = true;
}
return ;
}
for (int i = 1; i <= maxN; i++) {
if ( used[i] == false && D[i][ A[i - 1] ] == false) {
used[i] = true;
A[step] = i;
backtrack(step + 1, maxN);
used[i] = false;
}
}
}
int main() {
fin >> N >> K >> M;
for (int x,y; M--;) {
fin >> x >> y;
D[x][y] = true;
D[y][x] = true;
}
backtrack(1, N + 1);
cout << endl << nrsol;
return 0;
}