Cod sursa(job #376448)

Utilizator PavelRazvanPavel Razvan PavelRazvan Data 21 decembrie 2009 17:02:00
Problema Dusman Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<stdio.h>
#include<stdlib.h>
#define DIM 1005
struct ok
{
    int x,y;
} a[3*DIM];
int n,m,b[DIM],k2,k,v[DIM];
void read ()
{
    int i;
    scanf("%d%d%d",&n,&k,&m);
    for(i=1;i<=m;++i)
        scanf("%d%d",&a[i].x,&a[i].y);
}
void show ()
{
    int i;
    for(i=1;i<=n;++i)
        printf("%d ",b[i]);
    exit (0);
}
int check (int x,int y)
{
    int i;
    for(i=1;i<=m;++i)
        if((a[i].x==x && a[i].y==y) || (a[i].x==y && a[i].y==x))
            return 0;
    return 1;
}
void back (int x)
{
    int i;
    if(x==n+1)
        ++k2;
    else
        for(i=1;i<=n;++i)
            if(check(b[x-1],i) && !v[i])
            {
                b[x]=i;
                v[i]=1;
                back(x+1);
                v[i]=0;
            }
    if(k2==k)
        show ();
}
int main ()
{
    freopen("dusman.in","r",stdin);
    freopen("dusman.out","w",stdout);
    read ();
    back(1);
    return 0;
}