Pagini recente » Cod sursa (job #582066) | Cod sursa (job #1877726) | Cod sursa (job #2779222) | Cod sursa (job #1590296) | Cod sursa (job #16407)
Cod sursa(job #16407)
#include<stdio.h>
int a[3][101][101],i,n,m,x[102],ys[102],gata,t,y,z,lung;
int back(int p,int l)
{
int j,ok,r;
if(p==n+1)
{lung=l;
r=0;
for(j=1;j<=n;j++)
if(x[j]) {r++;ys[r]=j;}
gata=1;
return 0;}
x[p]=1;ok=1;
for(j=1;j<p;j++)
if(a[x[j]+2*x[p]][j][p]){ok=0;break;}
if(ok) {back(p+1,l+1); if(gata) return 0;}
x[p]=0;ok=1;
for(j=1;j<p;j++)
if(a[x[j]+2*x[p]][j][p]){ok=0;break;}
if(ok){back(p+1,l); if(gata)return 0;}
return 0;
}
int main()
{
FILE *f=fopen("party.in","r");
fscanf(f,"%d%d",&n,&m);
for(i=1;i<=m;i++)
{ fscanf(f,"%d%d%d",&t,&y,&z);
if(z==0){a[0][t][y]=1;a[0][y][t]=1;}
if(z==1){a[1][t][y]=1;a[2][y][t]=1;}
if(z==2){a[2][t][y]=1;a[1][y][t]=1;}
if(z==3){a[3][t][y]=1;a[3][y][t]=1;}
}
fclose(f);
gata=0;
back(1,0);
f=fopen("party.out","w");
fprintf(f,"%d\n",lung);
for(i=1;i<=lung;i++)
fprintf(f,"%d\n",ys[i]);
fclose(f);
return 0;
}