Cod sursa(job #919450)

Utilizator apopeid13Apopeid Alejandro apopeid13 Data 19 martie 2013 17:45:42
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <stdio.h>
  
int n,v[1001],s[1001],d[4][1001],k,cnt;
  
void back(int j)
{
    int i=0,a;
    if ((j<=n)&&(cnt!=k))
    for (i=1;i<n+1;i++)
        if (((v[i]==0)&&(d[1][s[j-1]]!=i)&&(d[2][s[j-1]]!=i)&&(d[3][s[j-1]]!=i))||(j==1))
        {
            v[i]=1;
            s[j]=i;
            if (j<n) back(j+1);
            else
            {
                ++cnt;
                if (cnt==k)
                {
                    for (a=1;a<n+1;a++) printf("%d ",s[a]);
                    printf("\n");
                    return;
                }
            }
            v[i]=0;
        }
}
  
int main()
{
    int i,x,y,m;
    freopen("dusman.in","r",stdin);
    freopen("dusman.out","w",stdout);
    scanf("%d%d%d",&n,&k,&m);
    for (i=1;i<m+1;i++)
    {
        scanf("%d%d",&x,&y);
        ++d[0][x];
        d[d[0][x]][x]=y;
        ++d[0][y];
        d[d[0][y]][y]=x;
    }
    back(1);
    return 0;
}