Cod sursa(job #34618)

Utilizator becrcaruBercaru Cristian becrcaru Data 20 martie 2007 22:46:44
Problema Party Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream.h>
#define mx 1024
ifstream fi("party.in");
ofstream fo("party.out");

struct rel
      {int x;
       int y;
       int xy;};

long n;
long cb;
long m;
rel v[mx];
long p=0;

void scrie(long k)
    {long i;
     for (i=0;i<n;i++)
	 if (k&(1<<i)) p++;
     fo<<p<<'\n';
     for (i=0;i<n;i++)
	 if (k&(1<<i))
	    fo<<i+1<<'\n';}

int main()
   {long i,j;
    long a,b,c;
    long r;
    fi>>n>>m;
    for (i=0;i<m;i++)
	fi>>v[i].x>>v[i].y>>v[i].xy;
    fi.close();
    cb=(1<<n);
    for (i=0;i<cb;i++)
       {r=1;
	for (j=0;j<m;j++)
	   {a=i&(1<<(v[j].x-1));
	    b=i&(1<<(v[j].y-1));
	    c=v[j].xy;
	    if (c==0)
	      {if (!(a|b)) {r=0;break;}}
	    else if (c==1)
	      {if (a==0 && b) {r=0;break;}}
	    else if (c==2)
	      {if (b==0 && a) {r=0;break;}}
	    else if (c==3)
	       if (a&b) {r=0;break;}}
	if (r==1 && i>0)
	  {scrie(i);
	   break;}}
    fo.close();
    return 0;}