<?php
function
upper_bound(
$array
,
$length
,
$value
)
{
$low
= 0;
$high
=
$length
;
while
(
$low
<
$high
)
{
$mid
= (int)((
$low
+
$high
) / 2);
if
(
$value
>=
$array
[
$mid
])
$low
=
$mid
+ 1;
else
$high
=
$mid
;
}
return
$low
;
}
function
lower_bound(
$array
,
$length
,
$value
)
{
$low
= 0;
$high
=
$length
;
while
(
$low
<
$high
)
{
$mid
= (int)((
$low
+
$high
) / 2);
if
(
$value
<=
$array
[
$mid
])
$high
=
$mid
;
else
$low
=
$mid
+ 1;
}
return
$low
;
}
function
findSextuplets(
$arr
,
$n
)
{
$index
= 0;
$RHS
=
array_fill
(0,
$n
*
$n
*
$n
+ 1, 0);
for
(
$i
= 0;
$i
<
$n
;
$i
++)
if
(
$arr
[
$i
] != 0)
for
(
$j
= 0;
$j
<
$n
;
$j
++)
for
(
$k
= 0;
$k
<
$n
;
$k
++)
$RHS
[
$index
++] =
$arr
[
$i
] *
(
$arr
[
$j
] +
$arr
[
$k
]);
sort(
$RHS
);
$result
= 0;
for
(
$i
= 0;
$i
<
$n
;
$i
++)
for
(
$j
= 0;
$j
<
$n
;
$j
++)
for
(
$k
= 0;
$k
<
$n
;
$k
++)
{
$val
=
$arr
[
$i
] *
$arr
[
$j
] +
$arr
[
$k
];
$result
+= (upper_bound(
$RHS
,
$index
,
$val
) -
lower_bound(
$RHS
,
$index
,
$val
));
}
return
$result
;
}
$arr
=
array
(2, 3);
$n
=
count
(
$arr
);
print
(findSextuplets(
$arr
,
$n
));
?>