37 lines
719 B
ObjectPascal

const
a:array[0..4,1..10] of byte = ((0,0,0,0,0,0,0,0,0,0),
(0,0,1,0,1,0,0,1,0,0),
(0,1,1,1,0,1,0,1,1,1),
(0,1,1,1,0,0,0,1,0,1),
(0,0,1,1,1,0,0,1,1,1));
var
b:array[1..4] of byte;
procedure check;
var j,k:byte;
begin
fillchar(b,sizeof(b),0);
for j:= 1 to 4 do
for k:= 1 to 10 do
if a[j,k]=a[0,k] then inc(b[j]);
if (b[1]<>7) or (b[2]<>5) or (b[3]<>3) then exit;
writeln(b[4]*10);
halt;
end;
procedure sub(s:byte);
var i:byte;
begin
if s>10 then check
else
for i:=0 to 1 do
begin
a[0,s] := i;
sub(s+1);
end;
end;
begin
sub(1);
end.