import java.util.*;
public class Solution {
Map<Integer, String> map;
String resr = "";
public String ArabicToRoman (int n) {
map = new HashMap<>();
map.put(1, "I");
map.put(4, "IV");
map.put(5, "V");
map.put(9, "IX");
map.put(10, "X");
map.put(40, "XL");
map.put(50, "L");
map.put(90, "XC");
map.put(100, "C");
map.put(400, "CD");
map.put(500, "D");
map.put(900, "CM");
map.put(1000, "M");
int arry[] = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
func("", n, arry, 0);
return resr;
}
void func(String res, int num, int[] array, int index) {
if(resr != "")return;
if(index >= array.length)return;
if(num == 0) {
resr = res;
return;
}
for(int i = index; i < array.length; ++i) {
if(num - array[i] < 0) continue;
else func(res + map.get(array[i]), num - array[i], array, i);
}
}
}