Pagini recente » Istoria paginii utilizator/jesusjuice13 | Junior Challenge 2016 Runda 1 | Cod sursa (job #1603645) | Istoria paginii utilizator/petrica_norby | Cod sursa (job #2474846)
#include<bits/stdc++.h>
#include <fstream>
using namespace std;
ifstream fin("dusman.in"); ofstream fout("dusman.out");
int n , m , k , g[1010][1010] = {0} , ok=0 , done=0;
bool check_adversar(vector<int> &cmb)
{
for(int i=0 ; i<n-1 ; i++)
if(g[cmb[i]][cmb[i+1]])
return false;
return true;
}
void generate_comb(int nr , int n , vector<int>uz , vector<int> &cmb)
{
if (nr == n)
{
if(check_adversar(cmb))
ok++;
if(ok == k)
{
done = 1;
for (int i = 0; i < n; i++)
fout << cmb[i]+1 << " ";
}
return;
}
for (int i=0 ; i<n ; i++)
if(!uz[i])
{
cmb[nr] = i; uz[i] = 1;
generate_comb(nr + 1 , n , uz , cmb);
if(done) break;
cmb[nr] = 0; uz[i] = 0;
}
}
int main()
{
fin >> n >> k >> m;
for(int i=0 ; i<m ; i++)
{
int a , b;
fin >> a >> b;
g[a-1][b-1] = 1;
g[b-1][a-1] = 1;
}
vector<int> cmb(n) , uz(n);
generate_comb(0 , n , uz , cmb);
return 0;
}