Cod sursa(job #406009)

Utilizator freak93Adrian Budau freak93 Data 1 martie 2010 08:25:20
Problema Dusman Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<fstream>
#include<bitset>

using namespace std;

const char iname[]="dusman.in";
const char oname[]="dusman.out";
const int maxn=1005;

ifstream f(iname);
ofstream g(oname);

int x[maxn],i,n,k,m,a,y;
bitset<maxn> d[maxn],v[maxn];

void afis()
{
    for(i=1;i<=n;++i)
        g<<x[i]<<" ";
    g<<"\n";
}

bool back(int i)
{
    if(i==n+1)
    {
        --k;
        if(k==0)
        {
            afis();
            return true;
        }
    }
    for(int j=1;j<=n;++j)
        if(v[j]==0&&d[j][x[i-1]]==0)
        {
            x[i]=j;
            v[j]=1;
            if(back(i+1))
                return true;
            v[j]=0;
        }
    return false;
}

int main()
{
    f>>n>>k>>m;
    for(i=1;i<=m;++i)
        f>>a>>y,d[a][y]=d[y][a]=1;
    back(1);

    f.close();
    g.close();

    return 0;
}