Cod sursa(job #376444)

Utilizator PavelRazvanPavel Razvan PavelRazvan Data 21 decembrie 2009 16:53:15
Problema Dusman Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 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;
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 p)
{
    int i;
    for(i=1;i<p;++i)
        if(y==b[i])
            return 0;
    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,x))
                b[x]=i,back(x+1);
    if(k2==k)
        show ();
}
int main ()
{
    freopen("dusman.in","r",stdin);
    freopen("dusman.out","w",stdout);
    read ();
    back(1);
    return 0;
}