Pagini recente » Cod sursa (job #672057) | Cod sursa (job #767598) | Cod sursa (job #1536474) | Monitorul de evaluare | Cod sursa (job #2013768)
#include <bits/stdc++.h>
FILE *fi, *fout;
const int MAXN = (int) 1e3;
bool ok[MAXN + 1][MAXN + 1];
bool viz[MAXN + 1];
int v[MAXN];
int n, m, k;
void bkt(int lvl) {
int i;
if(lvl == n) {
k--;
if(k == 0) {
for(i = 0; i < n; i++)
fprintf(fout,"%d " ,v[i]);
exit(0);
}
}
else {
for(i = 1; i <= n; i++)
if(viz[i] == 0) {
if(lvl == 0 || (lvl > 0 && ok[v[lvl - 1]][i] == 1)) {
viz[i] = 1;
v[lvl] = i;
bkt(lvl + 1);
viz[i] = 0;
}
}
}
}
int main() {
int a, b, i;
fi = fopen("dusman.in" ,"r");
fout = fopen("dusman.out" ,"w");
fscanf(fi,"%d %d %d " ,&n,&k,&m);
memset(ok, 1, sizeof(ok));
for(i = 1; i <= m; i++) {
fscanf(fi,"%d %d " ,&a,&b);
ok[a][b] = ok[b][a] = 0;
}
bkt(0);
fclose(fi);
fclose(fout);
return 0;
}