Всем доброго дня! Для решения данной использовал два динамических массива, один в качестве хранилища фамилий, другой в качестве хранилища городов. При введении фамилии и города с клавиатуры, индекс города(позиция в ArrayList) совпадает с индексом фамилии(позицией в ArrayList). Далее, по введенному городу, мы получаем его индекс и по этому индексу получаем соответствующую фамилию. Все условия соблюдены, но программа не проходит валидацию. Я рассматривал использование HashMap, но использование фамилии или города в качестве ключа не целесообразно, так как ключ должен быть уникальным а фамилии или названия городов могут повторяться