Массивы(232 задач)
Типы данных(356 задач)
Циклы(177 задач)
Условный оператор (if)(164 задач)
Python(260 задач)
Standard Template Library(2 задач)
Окружная олимпиада(18 задач)
Региональный этап(109 задач)
Заключительный этап(97 задач)
Даны три строки, состоящие из строчных латинских букв. С этими строками можно производить следующие операции: либо заменить один символ строки на два таких же символа (например, заменить символ «a» на «aa»), либо, наоборот, заменить два подряд идущих одинаковых символа на один такой же символ.
Необходимо при помощи этих операций сделать все три строки равными какой-то другой общей строке S либо определить, что это сделать невозможно. При этом нужно минимизировать общее количество операций.
Программа получает на вход три строки, состоящие из строчных букв латинского алфавита. Длина каждой строки не превышает 100 символов.
Если при помощи указанных операций возможно сделать все три строки равными, выведите такую строку S , что суммарное число операций, необходимых для преобразования всех трёх данных строк к строке S , будет минимальным. Если этого сделать нельзя, программа должна вывести одно слово IMPOSSIBLE (заглавными буквами).
Решение, которое выводит правильный ответ только на тестах из условия и тех тестах, на которых ответом является слово IMPOSSIBLE, будет оцениваться в 0 баллов.
aaaza aazzaa azzza
aazza
xy xxyy yx
IMPOSSIBLE
Победитель студенческой олимпиады получил предложения о стажировке от двух университетов. При подготовке планов обучения он узнал рейтинг качества преподавания каждой дисциплины в этих университетах.
Программа обучения первого университета состоит из последовательности перечисленных в хронологическом порядке n различных дисциплин a1, a2, ..., an, имеющих рейтинги x1, x2, ..., xn соответственно. Программа обучения второго университета состоит из последовательности перечисленных в хронологическом порядке m различных дисциплин b1, b2, ..., bm, имеющих рейтинги y1, y2, ..., ym соответственно.
Студент имеет возможность составить план обучения в первом университете таким образом, чтобы изучить дисциплины на позициях учебной программы с la по ra включительно (1 ≤ la ≤ ra ≤ n), либо отказаться от стажировки в первом университете. Аналогично он может составить план обучения во втором университете таким образом, чтобы изучить дисциплины на позициях учебной программы с lb по rb включительно (1 ≤ lb ≤ rb ≤ m), либо отказаться от стажировки во втором университете.
Изучать одну и ту же дисциплину дважды в разных университетах не имеет смысла, поэтому все дисциплины в двух выбранных планах обучения должны быть различны.
Требуется написать программу, которая определит планы обучения студента таким образом, чтобы получить наибольшую возможную сумму рейтингов изучаемых дисциплин.
Первая строка входных данных содержит целые числа n и m — количество дисциплин в программах обучения первого и второго университетов (1 ≤ n, m ≤ 500 000).
Вторая строка входных данных содержит n целых чисел ai — дисциплины, входящие в программу обучения первого университета, перечисленные в хронологическом порядке (1 ≤ ai ≤ n + m).
Третья строка входных данных содержит n целых чисел xi — рейтинги дисциплин, входящих в программу обучения первого университета, перечисленные том же порядке, что и дисциплины ai (1 ≤ xi ≤ 109).
Четвёртая строка входных данных содержит m целых чисел bi — дисциплины, входящие в программу обучения второго университета, перечисленные в хронологическом порядке (1 ≤ bi ≤ n + m).
Пятая строка входных данных содержит m целых чисел yi — рейтинги дисциплин, входящих в программу обучения второго университета, перечисленные том же порядке, что и дисциплины bi (1 ≤ yi ≤ 109).
Первая строка выходных данных должна содержать целое число r — наибольшую возможную сумму рейтингов дисциплин.
Вторая строка выходных данных должна содержать целые числа la, ra — позиции в учебной программе первой и последней дисциплин, входящих в план обучения в первом университете, либо «0 0», если студент отказался от стажировки в первом университете.
Третья строка выходных данных должна содержать целые числа lb, rb — позиции в учебной программе первой и последней дисциплин, входящих в план обучения во втором университете, либо «0 0», если студент отказался от стажировки во втором университете.
Если возможных правильных ответов несколько, разрешается вывести любой из них.
В первом тесте из условия приведённые планы обучения в университетах приводят к суммарному рейтингу дисциплин (7 + 4 + 10 + 1 + 5) + (5 + 3 + 4) = 27 + 12 = 39. Если бы студент выбрал только вторую и третью дисциплины в первом университете и весь курс обучения во втором университете, суммарный рейтинг дисциплин был бы (7 + 4) + (3 + 5 + 3 + 4 + 12) = 11 + 27 = 38.
Во втором тесте из условия первая и третья дисциплины во втором университете имеют настолько высокий рейтинг по сравнению с соответствующими дисциплинами первого университета, что наиболее выгодный вариант — пройти целиком стажировку во втором университете и отказаться от стажировки в первом университете.
7 5 3 1 4 8 6 9 2 2 7 4 10 1 5 3 9 2 11 3 8 3 5 3 4 12
39 2 6 2 4
2 3 1 2 1 4 2 3 1 17 2 15
34 0 0 1 3
3 3 4 2 1 10 1 2 5 4 2 1 2 9
19 1 1 3 3