Pagini recente » Cod sursa (job #1759510) | Cod sursa (job #875423) | Cod sursa (job #2347505) | Cod sursa (job #157623) | Cod sursa (job #326774)
Cod sursa(job #326774)
#include <cstdio>
#include <cstring>
#define file_in "party.in"
#define file_out "party.out"
#define Nmax 1010
int n,s[Nmax],m;
int x[Nmax],y[Nmax],z[Nmax];
int ok()
{
int i;
for (i=1;i<=m;++i)
{
if (z[i]==0)
{
if (s[x[i]]==0 && s[y[i]]==0) return 0;
}
if (z[i]==1)
{
if (s[x[i]]==0 && s[y[i]]==1) return 0;
}
if (z[i]==2)
{
if (s[x[i]]==1 && s[y[i]]==0) return 0;
}
if (z[i]==3)
{
if (s[x[i]]==1 && s[y[i]]==1) return 0;
}
}
return 1;
}
void subm()
{
int q,x,i,nr,okk;
s[n]=1;
okk=1;
for (q=0;q<(1<<n)-1 && okk;++q)
{
x=n;
while (s[x])
{
s[x]=0;
x--;
}
s[x]=1;
if (ok())
{
nr=0;
for (i=1;i<=n;++i)
if (s[i]) nr++;
printf("%d\n", nr);
for (i=1;i<=n;++i)
if (s[i])
printf("%d\n", i);
okk=0;
}
}
}
int main()
{
int i;
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d %d", &n,&m);
for (i=1;i<=m;++i)
scanf("%d %d %d", &x[i],&y[i],&z[i]);
subm();
fclose(stdin);
fclose(stdout);
return 0;
}