Pagini recente » Cod sursa (job #2066395) | Cod sursa (job #137137) | Cod sursa (job #650099) | Cod sursa (job #1681562) | Cod sursa (job #558142)
Cod sursa(job #558142)
#include <bitset>
#include <fstream>
#include <vector>
using namespace std;
bitset<1001> viz(false);
vector<int> sol;
int a[1001][1001];
int N, K, M;
void back(int x);
bool cond(int x);
int main()
{
ifstream in("dusman.in");
in >> N >> K >> M;
sol.resize(N + 1, 0);
for (int i = 1; i <= M; i++)
{
int x, y;
in >> x >> y;
a[x][y] = a[y][x] = true;
}
back(1);
}
void back(int x)
{
if (K == 0)
return;
if (x > N)
{
if (--K == 0)
{
ofstream out("dusman.out");
for (int i = 1; i <= N; i++)
out << sol[i] << ' ';
}
return;
}
for (int i = 1; i <= N; i++)
{
if (!viz[i])
{
sol[x] = i;
viz[i] = true;
if (cond(x))
back(x + 1);
viz[i] = false;
}
}
}
bool cond(int x)
{
if (x > 1 && a[sol[x]][sol[x - 1]])
return false;
else
return true;
}