Pagini recente » Cod sursa (job #2590509) | Cod sursa (job #1349642) | Cod sursa (job #2626386) | Cod sursa (job #802688) | Cod sursa (job #27500)
Cod sursa(job #27500)
#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])&&(a[x[p]+2*x[j]][p][j])){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])&&(a[x[p]+2*x[j]][p][j])){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;}
if(z==1){a[1][t][y]=1;}
if(z==2){a[2][t][y]=1;}
if(z==3){a[3][t][y]=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;
}