Cod sursa(job #1318547)

Utilizator sicsicFMI-Coteanu Vlad sicsic Data 16 ianuarie 2015 07:53:02
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<fstream>
using namespace std;
ifstream f("dusman.in");
ofstream g("dusman.out");
int x[1001],n,k,nr=0,i,j,a,b,m,K;
bool st1[1001][1001],st2[1001];
void afis()
{
    nr++;
    if(nr==K)
     {
         for(int i=1;i<=n;++i) g<<x[i]<<" ";
         g<<'\n';
     }
}
int cont(int k)
{
    if(st1[x[k]][x[k-1]]) return 0;
    if(st2[x[k]]) return 0;
    if(nr>K) return 0;
    return 1;
}
void backt(int k)
{
    int i;
    if(k==n+1) afis();
    else for(i=1;i<=n;++i)
    {
        x[k]=i;
        if(cont(k))
        {
            st2[x[k]]=1;
            backt(k+1);
            st2[x[k]]=0;
        }
    }
}
int main()
{
    f>>n>>K>>m;
    for(i=1;i<=m;++i)
    {
        f>>a>>b;
        st1[a][b]=st1[b][a]=1;
    }
    backt(1);
    return 0;
}