Задача симметричная последовательность python

Упражнения

Вася хочет узнать, какую оценку он получит в четверти по информатике. Учитель придерживается следующей системы: вычисляется среднее арифметическое всех оценок в журнале, и ставится ближайшая целая оценка, не превосходящая среднего арифметического.

При этом если у школьника есть двойка, а следующая за ней оценка – не двойка, то двойка считается закрытой, и при вычислении среднего арифметического не учитывается.

Вводится десять натуральных чисел от 2 до 5 через пробел – оценки Васи.

02: Пассажиры метро

Для изучения пассажиропотока в метро было записано время входа и время выхода в метро каждого пассажира. На основании этих данных определите, сколько пассажиров было в метро в некоторый заданный момент времени \(T\).

Программа получает на вход число пассажиров \(N\). Далее в \(N\) строчках записано время входа \(A_i\) и время выхода \(B_i\) каждого пассажира (\(A_i\lt B_i\)). Время задается в минутах от начала работы метрополитена.

03: Навстречу

Дана последовательность чисел. Вывести ее в след. порядке: первое число, последнее, второе, предпоследнее и так далее все числа (см. пример).

Программа получает на вход количество чисел \(N\) (количество чисел), в следующей строке сами числа через пробел.

04: Час пик

Не без вашей помощи в метро посчитали количество пассажиров в каждый час работы метро. Теперь вас просят по этим данным найти “час пик” такие \(k\) подряд идущих часов, что суммарное число пассажиров в эти часы максимальное.

Первая строка входных данных содержит количество часов в сутках, в течение которых работает метрополитен \(N\) (\(N\ge1\)). Вторая строка содержит \(N\) неотрицательных чисел, записанных через пробел. В третьей строке записана продолжительность часа пик \(K\) (\(1\le k \le N\)).

05: Треугольник Паскаля

1 1 1 1 2 1 1 3 3 1 1 4 6 4 1

Указание. Стройте строки треугольника Паскаля последовательно. Заведите два списка: для хранения последней построенной строки треугольника Паскаля и следующей за ней.

06: Два совпадающих элемента

В массиве ровно два элемента равны. Найдите эти элементы.

Читайте также:  Java замер скорости выполнения

Программа получает на вход число \(N\), в следующей строке заданы \(N\) элементов списка через пробел.

07: Двойной переворот

Дана последовательность натуральных чисел 1, 2, 3, . \(N\) (\(1 \le N \le 1000\)). Необходимо сначала расположить в обратном порядке часть этой последовательности от элемента с номером \(A\) до элемента с номером \(B\), а затем от \(C\) до \(D\) (\(A \le B\); \(C \le D\); \(1 \le A, B, C, D \le N\)).

08: Диаметр множества

На плоскости даны \(N\) точек, заданных своими координатами. Найдите две наиболее удаленные точки и выведите расстояние между ними.

Первая строка входных данных содержит число точек \(N\). Далее в \(N\) строках записано по два целых числа \(x_i\) и \(y_i\) — координаты точек.

09: Автомат со сдачей

Одна фирма обслуживает автоматы по продаже чая и кофе.

Стоимость стакана чая и кофе в автомате равна пяти рублям. Автомат принимает монеты по 5 и 10 рублей, а также купюры в 10, 50 и 100 рублей. Когда покупателю надо выдавать сдачу (т.е. когда пассажир бросил в автомат десятирублёвую монету или 10-, 50- или 100-рублёвую купюру), автомат выдаёт сдачу пятирублёвыми монетами; если же покупатель бросил в автомат пятирублёвую монету, то автомат её сохраняет и может использовать для сдачи следующим покупателям.

Ясно, что, чтобы обеспечить возможность выдачи сдачи всем покупателям, может потребоваться изначально загрузить в автомат некоторое количество пятирублёвых монет. Сейчас автоматы проходят испытания с целью определить минимальное количество монет, которые надо загрузить в автомат перед началом дня. Вам дан протокол одного из таких испытаний: известен порядок, в котором покупатели оплачивали свои покупки различными монетами и купюрами. Определите, какое минимальное количество пятирублёвых монет должно было изначально находиться в автомате, чтобы всем покупателям хватило сдачи.

В первой строке входных данных находится одно натуральное число \(N\) — количество покупок в автомате, которые были совершены в ходе испытания (\(1\leq N\leq 50\,000\)). Во второй строке находятся \(N\) натуральных чисел, каждое из которых равно номиналу монеты или купюры, которую использовал очередной покупатель для оплаты; каждый номинал может принимать одно из четырёх значений: 5, 10, 50 или 100.

Читайте также:  Java lang nullpointerexception api

Источник

Симметричная последовательность (Python)

Последовательность чисел назовем симметричной, если она одинаково читается как слева направо, так и справа налево. Например, следующие последовательности являются симметричными:

Вашей программе будет дана последовательность чисел. Требуется определить, какое минимальное количество и каких чисел надо приписать в конец этой последовательности, чтобы она стала симметричной.

Формат входных данных
Сначала вводится число n — количество элементов исходной последовательности (1≤n≤100).

Далее идут n чисел — элементы этой последовательности, натуральные числа от 1 до 9, каждое с новой строки.

Формат выходных данных
Выведите сначала число M — минимальное количество элементов, которое надо дописать к последовательности, а потом M чисел (каждое — от 1 до 9 ) — числа, которые надо дописать к последовательности.
Примеры
входные данные выходные данные
9 0
1
2
3
4
5
4
3
2
1

Для того чтобы решить задачу за линейное время относительно длины входа (иными словами, асимптотика O(n)), нужно использовать алгоритм Кнута-Морриса-Пратта, точнее, его часть.
Здесь же зайдет квадратичное решение.
Будем добавлять по очереди в последовательность на n-ое место сначала первый элемент, затем вставим второй и т. д., пока получившаяся последовательность не станет палиндромом.
То есть:
n = int(input())
arr = []for i in range(n): arr.append(int(input()))
i = 0
while arr != arr[::-1]:
. arr.insert(n, arr[i])
. i += 1
print(i)
print(*arr[:i][::-1])

# ввод
m = int(input())
arr = []while len(arr) < m:
~~~~arr.append(int(input()))

# функция для определения палиндрома
is_pal = lambda x: x == x[::-1] if len(x) > 1 else False

# перебираем список в поисках палиндрома
arr_2 = arr[:]for i in range(len(arr)):
~~~~if is_pal(arr_2[i:]):
~~~~~~~~arr_2 = arr_2[i:]~~~~~~~~if arr == arr_2:
~~~~~~~~~~~~print(‘0’)
~~~~~~~~else:
~~~~~~~~~~~~print(‘нужно добавить эл.: <>‘.format(len(arr[:i]),’ ‘.join(list(map(str, arr[:i][::-1])))))
~~~~~~~~break

Источник

Симметричная последовательность

Последовательность чисел назовем симметричной, если она одинаково читается как слева направо, так и справа налево. Например, следующие последовательности являются симметричными:

Вашей программе будет дана последовательность чисел. Требуется определить, какое минимальное количество и каких чисел надо приписать в конец этой последовательности, чтобы она стала симметричной.

Формат ввода
Сначала вводится число N — количество элементов исходной последовательности (1 ≤ N ≤ 100). Далее идут N чисел — элементы этой последовательности, натуральные числа от 1 до 9.

Формат вывода
Выведите сначала число M — минимальное количество элементов, которое надо дописать к последовательности, а потом M чисел (каждое — от 1 до 9) — числа, которые надо дописать к последовательности.

Читайте также:  Head first java books

Пример 1
Ввод
9
1 2 3 4 5 4 3 2 1
Вывод
0

Пример 2
Ввод
5
1 2 1 2 2
Вывод
3
1 2 1

Пример 3
Ввод
5
1 2 3 4 5
Вывод
4
4 3 2 1

Симметричная ли матрица
Помогите пожалуйста. Проверьте, является ли двумерный массив симметричным относительно главной.

Симметричная матрица
Написать программу, которая проверяет, является ли квадратная матрица симметричной относительно.

Вставить в последовательность число так, чтобы последовательность осталась неубывающей
Дана последовательность действительных чисел a1<=a2. <=an. Вставить в нее действительное число b.

Операции множеств: пересечение и симметричная разница
С помощью Python написать программу, которая реализует операции множеств, а именно пересечение и.

Симметричная последовательность
подскажите пожалуйста как определить образуют ли цифры числа симметричную последовательность?

Лучший ответ

Сообщение было отмечено Bogartol как решение

Решение

input() lst = input().split() for i in range(len(lst)): if lst[i:] == lst[i:][::-1]: print(i) print(*lst[:i][::-1]) break

Источник

Определить, возможно ли из всех данных чисел составить симметричную последовательность

Последовательность чисел назовем симметричной, если она одинаково читается как слева на-
право, так и справа налево. Например, следующие последовательности являются симметричными:

1 2 3 4 5 4 3 2 1
1 2 1 2 2 1 2 1

Дан набор чисел, требуется понять, возможно ли из всех данных чисел составить симметричную
последовательность

Формат выходных данных
Вывести симметричную последовательность, которую можно составить из всех чисел, разделенных пробелом. Если последовательностей может быть несколько, то вывести любую. Если невозможно, то вывести 0

Примеры:
Стандартный ввод | Стандартный вывод
5——————— | 1 2 2 2 1
1 2 1 2 2

Определить образуют ли числа симметричную последовательность.
на языке с++ Даны натуральные число n(n<=100),целые числа a1. aN.Определить образуют ли числа.

Дана последовательность из М целых чисел. Определить полусумму всех чисел в интервале от 0 до 5 и кол-во отрицательных
Порядок выполнения работы 1.Изучите теоретическое обоснование и проанализируйте приведенные выше.

Эксперт Python

Лучший ответ

Сообщение было отмечено Catstail как решение

Решение

from collections import Counter n = int(input()) a = Counter(map(int, input().split())) if len([v for v in a.values() if v % 2])  1: print('YES') else: print('NO')
1 2 3 4 5 6 7 8 9 10 11 12 13
n = int(input()) a = sorted(list(map(int, input().split()))) t = [x for x in set(a) if a.count(x)%2 == 1] s = '' if len(t)  2: if t: s = f' ' a.remove(t[0]) for i in range(0, n - 1, 2): s = f'  ' print(s) else: print(0)

Источник

Оцените статью