Pagini recente » Cod sursa (job #610563) | Cod sursa (job #1692519) | Cod sursa (job #339023) | Cod sursa (job #1993059) | Cod sursa (job #583311)
Cod sursa(job #583311)
var a:array[1..21]of boolean;
b:array[1..1000,1..3]of integer;
n,m:integer;
procedure init;
var f:text; i:integer;
begin
assign(f,'party.in');
reset(f);
readln(f,n,m);
for i:=1 to m do readln(f,b[i,1],b[i,2],b[i,3]);
close(f);
end;
procedure afis;
var i,k:byte; f:text;
begin
assign(f,'party.out');
rewrite(f);
k:=0;
for i:=1 to n do
if a[i] then inc(k);
writeln(f,k);
for i:=1 to n do
if a[i] then writeln(f,i);
close(f);
end;
procedure afis2;
var i,k:byte; f:text;
begin
for i:=1 to n do write(a[i],' ');
end;
function bool:boolean;
var i:integer; t:boolean;
begin
t:=true;
for i:=1 to m do
begin
if (b[i,3]=0) then t:=(t)and(a[b[i,1]]or(a[b[i,2]])) else
if (b[i,3]=1)or(b[i,3]=2) then
begin
if a[b[i,1]] then t:=(t)and(a[b[i,1]]) else t:=(t)and(not a[b[i,2]]);
end else
if b[i,3]=3 then t:=(t)and(not((a[b[i,1]])and(a[b[i,2]])));
end;
bool:=t;
end;
procedure gen_bin(p:byte);
begin
if p>n then
begin
if bool then begin afis; halt; end;
end
else begin
a[p]:=true; gen_bin(p+1);
a[p]:=false; gen_bin(p+1);
end;
end;
begin
init;
gen_bin(1);
end.