Pagini recente » Cod sursa (job #1660673) | Cod sursa (job #44384) | Cod sursa (job #1515800) | Cod sursa (job #393622) | Cod sursa (job #113311)
Cod sursa(job #113311)
Utilizator |
Adrian Diaconu DITzoneC |
Data |
9 decembrie 2007 17:38:52 |
Problema |
Dusman |
Scor |
Ascuns |
Compilator |
cpp |
Status |
done |
Runda |
|
Marime |
0.7 kb |
#include <stdio.h>
#define nmax 1024
#define FOR(i,s,d) for(i=(s);i<(d);++i)
char A[nmax][nmax],viz[nmax];
int n,m,k,st[nmax],ok;
void doit(int i)
{
if(k<0)
return;
if(i>n)
{
if(!(--k))
{
FOR(i,1,n+1)
printf("%d ",st[i]);
printf("\n");
}
return;
}
int j;
FOR(j,1,n+1)
{
if(!viz[j]&&A[st[i-1]][j]&&k>0)
ok++;
if(!viz[j]&&!A[st[i-1]][j])
viz[j]=1,st[i]=j,doit(i+1),viz[j]=0;
}
}
int main()
{
int i,j,ii;
freopen("dusman.in","r",stdin);
freopen("dusman.out","w",stdout);
scanf("%d %d %d",&n,&k,&m);
FOR(ii,0,m)
{
scanf("%d %d",&i,&j);
A[i][j]=A[j][i]=1;
}
/*
n=13;
k=1;
FOR(i,7,14) FOR(j,7,14)
A[i][j]=1;
*/
doit(1);
fprintf(stderr,"%d\n",ok);
return 0;
}