Pagini recente » Profil M@2Te4i | Istoria paginii runda/easy-supereasy/clasament | Cod sursa (job #2278876) | Cod sursa (job #1749892) | Cod sursa (job #1661595)
#include <iostream>
#include <fstream>
#include <stdlib.h>
using namespace std;
ifstream in("dusman.in");
ofstream out("dusman.out");
const int N_max = 1002;
bool d[N_max][N_max];
int sol[N_max];
bool c[N_max];
int NR;
int N, M, K;
void read()
{
int i, A, B;
in >> N >> K >> M;
for(i = 1; i <= M; i++)
{
in >> A >> B;
d[A][B] = d[B][A] = true;
}
}
void afisare()
{
int i;
NR++;
if(NR == K)
{
for(i = 1; i <= N; i++) out << sol[i] << " ";
exit(0);
}
}
void bkt(int p)
{
if(p - 1 == N) afisare();
else
for(int i = 1; i <= N; i++)
if( !c[i] && !d[sol[p - 1]][i] )
{
c[i] = true;
sol[p] = i;
bkt(p + 1);
c[i] = false;
}
}
int main()
{
read();
bkt(1);
return 0;
}