Cod sursa(job #736006)

Utilizator mihai995mihai995 mihai995 Data 17 aprilie 2012 17:59:44
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <bitset>
#include <cstdlib>
using namespace std;

const int N=1005;
bitset<N> bad[N];
int sol[N],n,k;
bool use[N];

ifstream in("dusman.in");
ofstream out("dusman.out");

void print()
{
    for (int i=1;i<=n;i++)
        out<<sol[i]<<" ";
    out<<"\n";
}

void check()
{
    --k;
    if (!k)
    {
        print();
        exit(0);
    }
}

void bkt(int p)
{
    if (p==n+1)
    {
        check();
        return;
    }
    for (int i=1;i<=n;i++)
        if (!use[i] && !bad[sol[p-1]][i])
        {
            use[i]=true;
            sol[p]=i;
            bkt(p+1);
            use[i]=false;
        }
}

int main()
{
    int m,x,y;
    in>>n>>k>>m;
    while (m--)
    {
        in>>x>>y;
        bad[x][y]=bad[y][x]=true;
    }
    bkt(1);
    return 0;
}