Приветствую, сообщество codeforces!
Недавно проходил интервью в одну локальную компанию, где мне дали задание на codility, и я был немного удивлен списком задач, которые я получил. Мне показались они сложными. Я смог решить только 1 из 3, на остальные 2 написал решения для маленьких ограничений, чтобы было хотя бы что-то.
Теперь хотел бы попросить у Вас помощи, идеи или подходы как решить эти задачи.
Задача1
1) Дано бесконечное поле на которой стоит конь (0, 0). Надо дойти до (A, B) -10^8 <= A, B <= 10^8, если невозможно возвратить -1, если количество шагов больше чем 10^8, возвратить -2
Задача2
2) Дана система счисления с основанием -2. Примеры: 011 — это будет 0 * (-2)^0 + 1 * (-2)^1 + 1 * (-2) ^ 2 = 2 0011 — это будет 0 * (-2) ^ 0 + 0 * (-2) ^ 1 + 1 * (-2) ^ 2 + 1 * (-2) ^ 3 = -4
Дан массив состоящий из 0 и 1 размером 1 < size < 10 ^ 5. Нужно возвратить массив состоящий из 0 и 1, только обозначющей отрицательное значение, полученное из изначального массива.
Примеры 11011 = 7, нужно возвратить 1001 = -7 1111 = -5, нужно возвратить 101 = 5
Здесь я сгенерировал все возвможные маски, чтобы увидеть какую-нибудь закономерность, но, к сожалению, ничего стоящего не придумал.
Заранее спасибо за вашу помощь!
UPD: длина, получившегося во второй задаче массива, должна быть минимальной