Якщо пару місяців себе налаштовувати на подібні задачі, вчити алгоритми і т.д., то пари годин цілком достатньо. Зрештою, це просто трохи закручений хвильовий алгоритм на два боки (для власного корабля і для вікінгів).
Я от вчу всі ті алгоритми. Досить часто буває, що прочитавши задачу я знаю який алгоритм допоможе мені її розв'язати. Тобто в загальному я знаю як рішити задачу. Але коли діло доходить до якихось дрібничок, там я роблю повно помилок. Для прикладу сьогодні - https://codeforces.com/contest/495/problem/A
Я зразу поняв, що тре порахувати к-сть цифр на які може змінитися індикатор (0 - 0,2; 3 - 3,8,9 ...) Далі тре порахувати к-сть всіх можливих чисел. Получилося щось страшне, але пів години сів знову за неї і от получився розв'язок у два рядки коду.
P.s. Вибачте за оффтоп