Cod sursa(job #1011437)

Utilizator Dddarius95Darius-Florentin Neatu Dddarius95 Data 16 octombrie 2013 20:48:46
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <bitset>
#define Nmax 1009
using namespace std;
ifstream f("dusman.in");
ofstream g("dusman.out");

int N,K,M,sol[Nmax];
bitset < Nmax > a[Nmax];
bitset < Nmax > gasit;

inline void ReadInput()
{
    f>>N>>K>>M;
    for (int i=1;i<=M;++i)
    {
        int x,y;
        f>>x>>y;
        a[x][y]=a[y][x]=1;
    }
}

inline void PrintOutput()
{
    for (int i=1;i<=N;++i)g<<sol[i]<<' ';
    g<<'\n';
}

void Back(int vf)
{
    if (K<0)
        return;
    if (vf>N)
    {
        --K;
        if (K==0)PrintOutput();
        return;
    }
    for (int i=1;i<=N;++i)
        if (!gasit[i] && !a[sol[vf-1]][i])
        {
            sol[vf]=i;
            gasit[i]=true;
            Back(vf+1);
            gasit[i]=false;
        }
}

int main()
{
    ReadInput();
    Back(1);
    f.close();g.close();
    return 0;
}