Ошибка.
Попробуйте повторить позже
Организация купила для своих сотрудников все места в нескольких подряд идущих рядах на концертной площадке. Известно, какие места уже распределены между сотрудниками. Найдите ряд с наибольшим номером, в котором есть пять соседних мест, таких что слева и справа от них в том же ряду места уже распределены (заняты). Гарантируется, что есть хотя бы один ряд, удовлетворяющий условию.
Входные данные представлены в файле 26_4.txt следующим образом. В первой строке входного файла находится одно число: N – количество занятых мест (натуральное число, не превышающее 10 000). В следующих N строках находятся пары чисел: ряд и место выкупленного билета, не превышающие 100 000.
В ответе запишите шесть целых числа: номер ряда и номера соседних пяти мест в нем.
f = open(’26_4.txt’) n = int(f.readline()) a = [] for line in f: numbers = list(map(int, line.split())) a.append(numbers) a = sorted(a) for i in range(len(a)-1): if (a[i][0] == a[i+1][0]) and (a[i+1][1] - a[i][1] == 6): print(a[i], a[i+1])
Ошибка.
Попробуйте повторить позже
Известно, что путь автобуса проходит через А городов. У контроллёра есть список, содержащий В заявок на поездку. В каждой заявке указано на какой остановке пассажир будет садиться в автобус и на какой остановке он выйдет. Известно, что в автобусе всего С мест. На остановках сначала происходит высадка пассажиров, затем посадка. Когда пассажиры приходят на посадку, контроллёр в первую очередь пропускает того, чей путь дольше остальных. При этом место пассажира определеяется как свободное и чей номер минимален.
Определите количество пассажиров, которые смогут добраться до пункта своего назначения и в скольких участках между соседними городами будут полностью заняты места.
Входные данные. В первой строке файла задано три числа: A (2 M 2000) – количество населенных пунктов, в которых останавливается автобус, C (1 K 1000) – количество мест в автобусе и B (1 N 10000) – количество пассажиров, желающих проехать на автобусе. В каждой из последующих N строк располагаются пары чисел: сначала номер населенного пункта, откуда хочет начать свою поездку пассажир, затем номер населенного пункта, где пассажир собирается сойти с поезда.
Выходные данные. Два числа через пробел: сначала количество участков между соседними городами, в которых места будут полностью заняты, затем количество пассажиров, которые смогут добраться до нужной им станции,
f = open(’5prob/26.txt’) # Считали первую строку a, c, b = map(int, f.readline().split()) # Считали данные о пассажирах data = [] for i in range(b): x, y = map(int, f.readline().split()) data.append([x, y]) data.sort(key=lambda x: (x[0], -x[1])) # Отсортировали по возрастанию первого элемента и убыванию второго # Создали список для каждого из мест. places[i][point] отвечает за i-ое место и будет хранить 0 или 1, в зависимости # от того, занято ли оно в населенном пункте point. places = [[0] * (a + 1) for i in range(c)] counter = 0 # Количество пассажиров, которые смогут добраться до нужной им станции cnt_areas = 0 # Количество участков между соседними городами, в которых места будут полностью заняты # Перебираем для каждого пассажира места и ищем свободные for st, fin in data: for i in range(c): # Если место свободно на данном населённом пункте, то сажаем сюда пассажира if places[i][st] == 0: counter += 1 # Резервируем данное место на все населённые пункты с st по fin не включительно. То есть место будет свободно # в населённом пункте с индексом fin, так как пассажир на нём сойдёт. for j in range(st, fin): places[i][j] = 1; break # Перебираем для каждого населённого пункта все места и смотрим, чтобы все эти места были заполнены for p in range(1, a + 1): if all(places[i][p] == 1 for i in range(c)): cnt_areas += 1 print(cnt_areas, counter)
Ошибка.
Попробуйте повторить позже
В городе планируется музыкальный фестиваль, на который открыт предзаказ билетов. Каждая заявка на предзаказ содержит только одно целое число - количество билетов, которые человек хочет купить.
Перед началом фестиваля кассир распределяет заявки следующим образом: в первую очередь рассматриваются заявки, содержащие наибольшее количество билетов для покупки. Все билеты из одной заявки должны находится в одном ряду. А также, в первую очередь заполняется ряд с наименьшим номером.
Определите, какое количество заявок подтвердит кассир и сколько свободных мест останется после распределения всех заявок.
Входные данные. В первой строке находится три числа: A - количество рядов, B - количество мест в ряду и C - количество заявок. В каждом из С следующих строк находится одно число - количество билетов в заявке.
Выходные данные. Два числа через пробел - сначала количество подтвержденных заявок, затем количество оставшихся мест.
Решение
with open(’C:/26_2.txt’) as f: # k - количество рядов # m - количество мест в ряду # n - количество заявок k, m, n = map(int, f.readline().split()) # Список заявок s = [int(f.readline())for _ in range(n)] # Сортируем список так, чтобы в начале стояли наибольшие числа s.sort(reverse=True) # Список для обозначения свободных мест free = [m]*k # Количество подтверждённых заявок cnt = 0 # Проходимся по заявкам for x in s: # Проходимся по каждому ряду for i in range(k): # Если в ряду достаточно свободных мест для заявки — засчитываем if free[i] >= x: # Отнимаем кол-во занимаемых мест от кол-ва свободных мест в этом ряду free[i] -= x cnt += 1 break print(cnt, sum(free))
Ошибка.
Попробуйте повторить позже
Организация купила для своих сотрудников все места в нескольких подряд идущих рядах на концертной площадке.
Известно, какие места уже распределены между сотрудниками. Найдите ряд с наименьшим номером, в котором есть
два соседних места, таких что слева и справа от них в том же ряду места уже распределены (заняты). Гарантируется,
что есть хотя бы один ряд, удовлетворяющий условию.
Входные данные.
В первой строке входного файла 26_8.txt находится одно число: N — количество занятых мест (натуральное число, не
превышающее 10000). В следующих N строках находятся пары чисел: ряд и место выкупленного билета (числа не
превышают 100000).
В ответе запишите два целых числа без пробелов и разделителей: сначала наименьший номер ряда, где нашлись
обозначенные в задаче места и наименьший номер места в этом ряду.
Пример входного файла:
6
50 12
50 15
60 157
60 160
60 22
60 25
Для данного примера ответом будет являться пара чисел 50 и 13.
1. Сначала переносим столбец с рядами и местами из текстового файла в Exel, а затем сортируем столбец А по
возрастанию, после сортируем столбец В по возрастанию. Таким образом получится, что в файле сначала идут ряды от
наименьших к наибольшим с упорядоченными местами
2. Далее в ячейке С2 пишем следующую формулу: =ЕСЛИ(A2=A1;B2-B1;0). Так мы считаем разницу между местами,
если они находятся в одном ряду.
3. Теперь пробегаемся по столбцу С и ищем первую попашуюся тройку. Она находится в ячейке С13 и связывает 136
ряд и места 114 и 117. Тогда наименьший ряд 136, а наименьшее место 115.
Ошибка.
Попробуйте повторить позже
Организация купила для своих сотрудников все места в нескольких подряд идущих рядах на концертной площадке. Известно, какие места уже распределены между сотрудниками. Найдите ряд с наибольшим номером, в котором есть три соседних места, таких что слева и справа от них в том же ряду места уже распределены (заняты). Гарантируется, что есть хотя бы один ряд, удовлетворяющий условию.
Входные данные.
В первой строке входного файла 26.txt находится одно число: N — количество занятых мест (натуральное число, не
превышающее 10 000). В следующих N строках находятся пары чисел: ряд и место выкупленного билета (числа не
превышают 100 000).
В ответе запишите два целых числа без пробела: сначала максимальный номер ряда, где нашлись обозначенные в
задаче места и минимальный номер места.
Пример входного файла:
6
50 11
50 15
60 156
60 160
60 21
60 25
Для данного примера ответом будет являться пара чисел 60 и 22.
Откроем текстовый документ. Запомним первое число и удалим его. Скопируем все числа в Excel или LibreOffice. В разделе Главная Сортировка и фильтр Настраиваемая сортировка делаем сортировку столбцов:
В ячейке записываем формулу =ЕСЛИ(И(A2=A1;B2=B1+4);"НАШЁЛ";0), В ячейке записываем
формулу =ЕСЛИ(И(A3=A2;ИЛИ(B3=B2+4;B3=B1+4));"НАШЁЛ";0), В ячейке записываем формулу
=ЕСЛИ(И(A4=A3;ИЛИ(B4=B3+4;B4=B2+4;B4=B1+4));"НАШЁЛ";0), В ячейке записываем формулу
=ЕСЛИ(И(A5=A4;ИЛИ(B5=B4+4;B5=B3+4;B5=B2+4;B5=B1+4));"НАШЁЛ";0) и растягиваем её на диапазон
. Наводим курсор на столбец , нажимаем на Главная Сортировка и фильтр Фильтр.
Сортируем столбец по критерию "НАШЁЛ". Видим, что наибольший номер ряда — , а наименьшее место — .
Ошибка.
Попробуйте повторить позже
Организация купила для своих сотрудников все места в нескольких подряд идущих рядах на концертной
площадке. Известно, какие места уже распределены между сотрудниками. Найдите ряд с наибольшим
номером, в котором есть два соседних места, таких что слева и справа от них в том же ряду места уже
распределены (заняты). Гарантируется, что есть хотя бы один ряд, удовлетворяющий условию. В ответе
запишите два целых числа: номер ряда и наибольший номер места из найденных в этом ряду подходящих
пар.
Входные данные.
В первой строке входного файла 9.txt находится одно число: N — количество занятых мест (натуральное число, не
превышающее 10000). В следующих N строках находятся пары чисел: ряд и место выкупленного билета (числа не
превышают 100000).
В ответе запишите два целых числа через пробел: сначала максимальный номер ряда, где нашлись обозначенные в
задаче места и максимальный номер места.
Пример входного файла:
6
50 12
50 15
60 157
60 160
60 22
60 25
Для данного примера ответом будет являться пара чисел 60 и 159.
f = open(’D:/9.txt’) n = int(f.readline()) a = [] for i in range(n): a.append(list(map(int, f.readline().split()))) a = sorted(a) mr = 0 # Наибольшее значение ряда mm = 0 # Наибольшее значение места for i in range(n-1): # Во втором выражении разность должна быть равна 3, # чтобы понять, что между двумя местами есть два свободных места if a[i][0] == a[i+1][0] and abs(a[i][1] - a[i+1][1]) == 3: mr = a[i][0] # Номер второго занятого места минус 1 # это наибольший номер свободного места из пары # (т.е. находящийся левее от второго занятого места из пары) mm = a[i+1][1]-1 print(mr, mm)