Roman numerals can be (mostly) written in a one column format, because each letter intersects the top and the bottom of the line. For example:
I, or 1 intersects both the top and bottom of the line, and
V or 5 intersects the bottom and top lines, the top twice and the bottom at one place.
The value of all roman numerals is as follows:
I = 1
V = 5
X = 10
L = 50
C = 100
D = 500
M = 1000
and the number of intersections (top, bottom) is:
I = 1,1
V = 2,1
X = 2,2
L = 1,2
C = 1,1
D = 1,1
M = 2,3
Your job is to take in 2 numbers, which represent the number of intersections on the top and bottom of your line (in that order), and output all possible valid combinations of roman numerals, from smallest by literal value to largest. Inputs will always be at or above 1.
Here are some test cases:
Input: 1,1 Output: I,C,D Input: 1,2 Output: L Input: 2,1 Output: V Input: 2,2 Output: II, X, IC, CI, CC, ID, DI (note that DD is not a valid roman numeral, and thus should not be outputted, the value of all of these is (in order) 2, 10, 99, 101, 499, 501) Input: 3,3 Output: III, IX, XI, LV, XC, CII, CX, CCI, CCC, DII, DX, DCI, DCC (note that IIC, and IID are not valid numbers. DD (1000) is also not a valid number, as the correct numeral is M) The value of these numbers (in order) is: 3, 9, 11, 55, 90, 102, 110, 201, 300, 502, 510, and 601)
This is a usual code-golf, and needless to say, I'm interested to see how golf languages implement roman numeral counting rules. Best of luck!