Cod sursa(job #117734)

Utilizator nashnash mit nash Data 22 decembrie 2007 10:36:53
Problema Dusman Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <stdio.h>
#include <stdlib.h>

int mat[1001][4];
int fol[1001];
int st[1001];
int nr,n,k1,m;

void readdata() {
     int i,a,b;
     freopen("dusman.in","r",stdin);
     freopen("dusman.out","w",stdout);

	 scanf("%d %d %d", &n,&k1,&m);
     for(i=1; i<=m; i++ ) {
              scanf("%d %d ",&a,&b);
              mat[a][++mat[a][0]]=b;
     }
}

void afis() {
     int i;
     for(i =1 ; i<= n ; i++ )
           printf("%d ",st[i]);
}

void back(int k ) {
     int i;
     if(k==n+1) { nr++; if( nr == k1 ) { afis(); exit(0); } }
     else for(i=1; i<=n ;i++ )
                   if(mat[st[k-1]][1]!=i && mat[st[k-1]][2]!=i && mat[st[k-1]][3]!=i && !fol[i]) {
                                         st[k]= i;
                                         fol[i] =1;
                                         back(k+1);
                                         fol[i]=0;
                   }
}

int main() {
    readdata();
    back(1);
    return 0;
}