Cod sursa(job #2141987)

Utilizator RaduXD1Nicolae Radu RaduXD1 Data 24 februarie 2018 17:49:01
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <bitset>

using namespace std;
ifstream fin ("dusman.in");
ofstream fout("dusman.out");
int n,v[1002],f[1002],m,h,ok;
int z[1002][1002];

void brak(int k)
{
    int i;
    if(k==n+1)
    {
        ok++;
        if(h==ok)
        {
            for(i=1;i<=n;i++)
                fout<<v[i]<<" ";
            fout<<"\n";
        }
        return;
    }
    for(i=1;i<=n;i++)
        if(f[i]==0&&z[v[k-1]][i]==0)
        {
            v[k]=i;
            f[i]++;
            brak(k+1);
            if(ok==h)
                return;
            f[i]--;
        }
}

int main()
{
    fin>>n>>h>>m;
    for(int i=1;i<=m;i++)
    {
        int a,b;
        fin>>a>>b;
        z[a][b]=1;
        z[b][a]=1;
    }
    brak(1);
    fin.close();
    fout.close();
    return 0;
}