def exchange(index, array_list): if 0 <= index < len(array_list): array_list_1 = array_list[:index+1] array_list_2 = array_list[index+1:] array_list = array_list_2 + array_list_1 return array_list else: print("Invalid index") return array_list # a_list = [1, 2, 3, 4, 5] # print(exchange(2, a_list)) # max even/odd– returns the INDEX of the max even/odd element -> [1, 4, 8, 2, 3] -> max odd -> print 4 def max_even_odd(type_number, array_list): if type_number == "even": even_list = [] for num in array_list: if num % 2 == 0: even_list.append(num) if len(even_list) > 0: max_num = max(even_list) for i in range(len(array_list) - 1, -1, -1): if array_list[i] == max_num: max_index = i return max_index else: print("No matches") elif type_number == "odd": odd_list = [] for num in array_list: if not num % 2 == 0: odd_list.append(num) if len(odd_list) > 0: max_num = max(odd_list) for i in range(len(array_list) - 1, -1, -1): if array_list[i] == max_num: max_index = i return max_index else: return "No matches" # a_list = [5, 5, 5, 5, 5] # print(max_even_odd("even", a_list)) # min even/odd – returns the INDEX of the min even/odd element -> [1, 4, 8, 2, 3] -> min even > print 3 def min_even_odd(type_number, array_list): if type_number == "even": even_list = [] for num in array_list: if num % 2 == 0: even_list.append(num) if len(even_list) > 0: min_num = min(even_list) for i in range(len(array_list) - 1, -1, -1): if array_list[i] == min_num: min_index = i return min_index else: return "No matches" elif type_number == "odd": odd_list = [] for num in array_list: if not num % 2 == 0: odd_list.append(num) if len(odd_list) > 0: min_num = min(odd_list) for i in range(len(array_list) - 1, -1, -1): if array_list[i] == min_num: min_index = i return min_index else: return "No matches" # first {count} even/odd– returns the first {count} elements -> [1, 8, 2, 3] -> first 2 even -> print [8, 2] def first_several_even_odd(count_num, type_number, array_list): if count_num > len(array_list) or count_num <= 0: return "Invalid count" elif type_number == "even": even_list = [] for i in range(len(array_list)): if array_list[i] % 2 == 0: if len(even_list) == count_num: break else: even_list.append(array_list[i]) return even_list elif type_number == "odd": odd_list = [] for i in range(len(array_list)): if not array_list[i] % 2 == 0: if len(odd_list) == count_num: break else: odd_list.append(array_list[i]) return odd_list def last_several_even_odd(count_num, type_number, array_list): if count_num > len(array_list) or count_num <= 0: return "Invalid count" elif type_number == "even": even_list = [] for i in range(len(array_list) - 1, -1, -1): if array_list[i] % 2 == 0: if len(even_list) == count_num: break else: even_list.append(array_list[i]) return even_list elif type_number == "odd": odd_list = [] for i in range(len(array_list) - 1, -1, -1): if not array_list[i] % 2 == 0: if len(odd_list) == count_num: break else: odd_list.append(array_list[i]) return odd_list list_nums = [int(elem) for elem in input().split()] while True: command = input() info = command.split() if info[0] == "end": print(list_nums) break elif info[0] == "exchange": list_nums = exchange(int(info[1]), list_nums) elif info[0] == "max": print(max_even_odd(info[1], list_nums)) elif info[0] == "min": print(min_even_odd(info[1], list_nums)) elif info[0] == "first": print(first_several_even_odd(int(info[1]), info[2], list_nums)) elif info[0] == "last": print(last_several_even_odd(int(info[1]), info[2], list_nums))