Списки в вашем примере отсортированы.Я предполагаю, что они есть, и что вы не можете использовать модули, так как это домашняя работа.Кроме того, так как это домашнее задание, я не буду давать ответ, но некоторые намеки в правильном направлении.
Если вы сделаете это вручную, и вам разрешено смотреть только на переднюю часть каждого рядакак бы ты это сделал?Если заголовок A - число меньше B, что это значит?Если оно равно, что это значит?Если оно больше, что это значит?
Теперь вы знаете, как справиться с одной ситуацией, из этого вы можете создать какой-то шаг для уменьшения проблемы.Теперь определите, когда вам нужно остановиться, и каковы возможные остатки списков в этой точке, и как вы можете получить свой ответ от значений, собранных на шаге, и от остатка после остановки.
Некоторые примеры крайних случаев:
@a = qw();
@b = qw(1 2 3);
@a = qw (1 2 3);
@b = qw (4 5 6);
@a = qw(1 3 5);
@b = qw(2 4 6)
Удачи!