Pagini recente » Cod sursa (job #3037685) | Cod sursa (job #1797155) | Cod sursa (job #321211) | Cod sursa (job #2170088) | Cod sursa (job #1355557)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("party.in");
ofstream out("party.out");
int x[101],n,m,v[1001][3],i,j,ma,M[100];
int verif(int i)
{
int ok=1,j,k,l;
for(j=0;j<m;j++)
{
if(v[j][2]==0)
if(x[v[j][0]]==0&&x[v[j][1]]==0)
ok=0;
if(v[j][2]==1)
if(x[v[j][0]]==0&&x[v[j][1]]==1)
ok=0;
if(v[j][2]==2)
if(x[v[j][0]]==1&&x[v[j][1]]==0)
ok=0;
if(v[j][2]==3)
if(x[v[j][0]]==1&&x[v[j][1]]==1)
ok=0;
}
if(ok)
return 1;
else
return 0;
}
void bk(int n,int i)
{
int j,k,l=0,m=1;
for(k=1;k<=n;k++)
{if(x[k]!=0&&x[k]!=1)
m=0;
l+=x[k];
}
if(l==0)
m=0;
if(m)
m=verif(i);
if(m)
{
if(l>ma)
{
ma=l;
for(k=1;k<=n;k++)
M[k]=x[k];
}
}
else
if(i<=n)
for(j=0;j<=1;j++)
{
x[i]=j;
bk(n,i+1);
}
}
int main()
{
in>>n>>m;
for(i=0;i<m;i++)
in>>v[i][0]>>v[i][1]>>v[i][2];
bk(n,1);
out<<ma<<"\n";
for(i=1;i<=n;i++)
if(M[i]==1)
out<<i<<"\n";
return 0;
}