ИНФОРМАТИКА РЕШИТЬ СРОЧНО
Паша ходил по лесу с игрушечным луком, который ему подарили на Новый Год, и стрелял в деревья. Но одна стрела полетела куда-то мимо, Паша пошёл за ней и увидел, что попал на поляну с рапторами. Более того, оказалось, что некоторые рапторы держат в зубах стрелы разных форм и размеров. Причём все стрелы расположены горизонтально в одной плоскости, но у одних наконечник направлен влево, а другие перевёрнуты, и наконечник у них смотрит вправо. Паша хочет как можно быстрее забрать свою стрелу и уйти оттуда. Помогите по образцу стрелы Паши найти раптора, который держит такую же стрелу. Стрела всегда состоит из трёх последовательных частей: наконечника, древка и оперения. Если стрела повёрнута влево, то сначала будет наконечник из произвольного числа символов '<', потом древко из произвольного числа символов '-, потом оперение из символов ''. Если она повернута вправо, то сначала оперенье '=', потом древко'' и наконечник в другую сторону: '>'. Гарантируется, что есть хотя бы по одному символу каждого вида. Формат входных данных В первой строке образец Пашиной стрелы строка из символов '<', '>', '-', '='. Длина строки не превышает 100 символов. Во второй строке вводится целое число № количество рапторов со стрелами (0 <= N <= 103). Затем следуют № строк, задающих стрелы рапторов. Формат такой же, как у образца, в каждой строке не больше 100 символов. Формат результата Выведите номер раптора из входного списка с подходящей стрелой. Считайте, что рапторы нумеруются с нуля. Если таких несколько, выведите минимальный номер. Если подходящих нет, выведите -1.
DeepSeek-R1:
Для решения задачи необходимо найти стрелу раптора, которая идентична образцу Пашиной стрелы. Каждая стрела может быть направлена влево или вправо и состоит из трёх частей: наконечника, древка и оперения. Для определения совпадения необходимо проверить точное соответствие строки стрелы раптора с образцом.
### Алгоритм решения:
1. Считать образец стрелы Паши.
2. Считать количество стрел рапторов.
3. Для каждой стрелы раптора проверить, совпадает ли она с образцом.
4. Если найдено совпадение, вывести индекс первого подходящего раптора.
5. Если совпадений нет, вывести -1.
### Решение:
pattern = input().strip()
n = int(input())
for i in range(n):
s = input().strip()
if s == pattern:
print(i)
exit()
print(-1)
Чтобы решить задачу, нужно определить, в каком направлении ориентирована стрела Паши и затем сравнить её с стрелами рапторов.
1. Сначала определим, какие символы есть в образце:
- Если первый символ '<', стрела направлена влево.
- Если первый символ '>', стрела направлена вправо.
2. Разделим образец на части:
- Для стрелы, направленной влево: сначала идут '<', затем '-' и в конце ''.
- Для стрелы, направленной вправо: сначала '=' потом '-', а потом '>'.
3. Затем, для каждой стрелы раптора, также разделим на части и проверим, совпадают ли они с частями стрелы Паши в зависимости от направления.
4. Если найдем совпадение, запоминаем номер раптора. В конце выводим номер первого найденного раптора или -1, если совпадений не оказалось.
Примерный код для выполнения данной логики:
sample_arrow = input().strip()
N = int(input().strip())
raptor_arrows = [input().strip() for _ in range(N)]
found_index = -1
# Определение части стрелы Паши
if sample_arrow[0] == '<':
# Определение левой стрелы
left_tip = sample_arrow.split('-', 1)[0]
left_body = sample_arrow.split(left_tip + '-', 1)[1].split('', 1)[0]
left_fletching = sample_arrow.split(left_tip + '-' + left_body)[-1]
else:
# Определение правой стрелы
right_fletching = sample_arrow.split('-', 1)[0]
right_body = sample_arrow.split(right_fletching + '=', 1)[1].split('>', 1)[0]
right_tip = sample_arrow.split(right_fletching + '=' + right_body)[-1]
# Поиск подходящей стрелы у рапторов
for i in range(N):
raptor_arrow = raptor_arrows[i]
if raptor_arrow[0] == '<':
# Левый
raptor_left_tip = raptor_arrow.split('-', 1)[0]
raptor_left_body = raptor_arrow.split(raptor_left_tip + '-', 1)[1].split('', 1)[0]
raptor_left_fletching = raptor_arrow.split(raptor_left_tip + '-' + raptor_left_body)[-1]
if left_tip == raptor_left_tip and left_body == raptor_left_body and left_fletching == raptor_left_fletching:
found_index = i
break
else:
# Правый
raptor_right_fletching = raptor_arrow.split('-', 1)[0]
raptor_right_body = raptor_arrow.split(raptor_right_fletching + '=', 1)[1].split('>', 1)[0]
raptor_right_tip = raptor_arrow.split(raptor_right_fletching + '=' + raptor_right_body)[-1]
if right_fletching == raptor_right_fletching and right_body == raptor_right_body and right_tip == raptor_right_tip:
found_index = i
break
print(found_index)
Этот код позволяет найти номер раптора с подходящей стрелой или вывести -1, если таких рапторов нет.