
The Brick Factory Problem

Imagine you are at the brick factory making bricks. You have a number of kilns k
and a number of storages s
. And you want to connect every kiln with every storage with the minimum possible number of tracks intersections. Notice, that it's not necessary for tracks to be straight (scheme 1).
Another variant of this problem is to find the minimum number of intersections while connecting every element with all others in k
sequence (scheme 2).
Your function must return the minimum number of intersections in the variant 1 (two arguments) or variant 2 (one argument), depending of the number of given arguments.
Here is a video with wider explanation of the problems, examples, schemes and formulas 😉. Notice, that the formulas are not fully proven yet and it may be your next own study!
Input: Two or one integer (int)
Output: Integer.
Examples:
assert crosses(1, 1) == 0 assert crosses(5) == 1 assert crosses(5, 5) == 16 assert crosses(7) == 9