Pagini recente » Cod sursa (job #2671877) | Cod sursa (job #2720684) | Cod sursa (job #889116) | Cod sursa (job #959087) | Cod sursa (job #823319)
Cod sursa(job #823319)
#include<stdio.h>
int v[101],b[101][101],n;
void citire(void)
{
int i,m,x,y,z;
freopen("party.in","r",stdin);
scanf("%d%d",&n,&m);
for(i=1;i<=m;i++)
{
scanf("%d%d%d",&x,&y,&z);
if(z==0)
{
b[x][y]=4;
}
else
b[x][y]=z;
}
}
void f0(int x,int y)
{
v[x]=2;
v[y]=2;
}
void f(int x)
{
int i;
v[x]==2;
for(i=1;i<=n;i++)
{
if(b[i][x]==1) f(i);
if(b[x][i]==2) f(i);
}
}
void afisare(void)
{
int i,s=0;
for(i=1;i<=n;i++)
if(v[i]==2)
s++;
printf("%d\n",s);
for(i=1;i<=n;i++)
if(v[i]==2)
printf("%d\n",i);
}
int main()
{
freopen("party.out","w",stdout);
int i,j;
citire();
for(i=1;i<=n;i++)
v[i]=1; // initializare
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(b[i][j]==3)
{
v[i]=0;
v[j]=0;
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(b[i][j]==4)
f0(i,j);
for(i=1;i<=n;i++)
if(v[i]==2) f(i);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(b[i][j]==3)
{
if(v[i]==2) v[j]=-1;
if(v[j]==2) v[i]=-1;
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
if(b[i][j]==1 && v[i]==-1) v[j]=-1;
if(b[i][j]==2 && v[j]==-1) v[i]=-1;
}
afisare();
return 0;
}