Cod sursa(job #1413584)

Utilizator akaprosAna Kapros akapros Data 1 aprilie 2015 22:59:30
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<cstdio>
#include<cstring>
#include<algorithm>
#define Nmax 1005
using namespace std;
int n,i,j,k,m,x,y;
bool v[Nmax][Nmax];
bool w[Nmax];
int sol[Nmax],q;
void citire()
{
    scanf("%d %d %d",&n,&k,&m);
    while (m--)
    {
        scanf("%d %d",&x,&y);
        v[x][y]=1;
        v[y][x]=1;
    }
}
void afisare()
{
    int i;
    for (i=1;i<=n;i++)
    printf("%d ",sol[i]);
    exit(0);
}
void back(int p)
{
    int i;
    if (p==n+1 && q==k-1)
    afisare();
    else
    if (p==n+1)
    {
        q++;
        return;
    }
    for (i=1;i<=n;i++)
    if (!w[i] && !v[i][sol[p-1]])
    {
        w[i]=1;
        sol[p]=i;
        back(p+1);
        w[i]=0;
        sol[p]=0;
    }
}
int main()
{
    freopen("dusman.in","r",stdin);
    freopen("dusman.out","w",stdout);
    citire();
    back(1);
    return 0;
}