Pagini recente » Cod sursa (job #586452) | Cod sursa (job #568450) | Cod sursa (job #821705) | Cod sursa (job #371203) | Cod sursa (job #568449)
Cod sursa(job #568449)
Utilizator |
roots1 roots |
Data |
31 martie 2011 11:06:16 |
Problema |
Party |
Scor |
20 |
Compilator |
cpp |
Status |
done |
Runda |
103 |
Marime |
1.08 kb |
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define Dim 1001
struct vector
{
int op,x,y;
}v[Dim];
char use[Dim];
int main()
{
int N,M,nr,i,ok;
freopen("party.in","r",stdin);
scanf("%d%d",&N,&M);
for(i=1;i<=M;i++) scanf("%d%d%d",&v[i].x,&v[i].y,&v[i].op);
srand(time(NULL));
freopen("party.out","w",stdout);
while(1)
{
nr=0;
for(i=1;i<=N;i++)
{
use[i]=rand()%2;
nr+=use[i];
}
ok=1;
for(i=1;i<=M;i++)
if(v[i].op==0)
{
if(use[v[i].x]|use[v[i].y]==0)
{
ok=0;
break;
}
}
else
if(v[i].op==1)
{
if(use[v[i].x]==0&&use[v[i].y]!=0)
{
ok=0;
break;
}
}
else
if(v[i].op==2)
{
if(use[v[i].y]==0&&use[v[i].x]!=0)
{
ok=0;
break;
}
}
else
if(v[i].op==3)
{
if(use[v[i].x]&use[v[i].y]==1)
{
ok=0;
break;
}
}
if(nr==0) ok=0;
if(ok)
{
printf("%d\n",nr);
for(i=1;i<=N;i++)
if(use[i]) printf("%d\n",i);
return 0;
}
}
return 0;
}