
Полный балл: 100 Ограничение времени: 400 мс Ограничение памяти: 512M Ограничение размера стека:
64M Задача 5: Кинотеатр В кинотеатре места часто расставляют со сдвигом соседних рядов для удобства зрителей. Пусть в таком кинотеатре N мест в 1-м, 3-м, 5-м и всех нечётных рядах и N + 1 место во 2-м, 4-м и всех чётных рядах. Места в рядах нумеруются от 1 до N в нечётных рядах и от 1 до N + 1 в чётных рядах. Касса продаёт билеты подряд: сначала в 1-й ряд на места с 1-го по N-е, потом — во 2-й ряд на места с 1-го по N + 1-е, затем в 3-й ряд с 1-го места и т.д. Определите номер ряда и номер места для K-го проданного билета. Входные данные Программа получает на вход два целых числа. В первой строке записано число N (1 ≤ N ≤ 109) — количество мест в 1-м ряду кинотеатра. Во второй строке записано число K — порядковый номер проданного билета (1 ≤ K ≤ 2×109). Выходные данные Программа должна вывести два числа: номер ряда и номер места K-го проданного билета. Система оценивания Решения, правильно работающие, когда входные числа не превосходят 1000, будут оцениваться в 60 баллов. Пример Ввод 10 25 Вывод 3 4 Пояснение Билеты с 1 по 10 будут проданы в первый ряд. Билеты с 11 по 21 будут проданы во второй ряд. В третий ряд будут проданы билеты, начиная с 22-го, 25-й билет окажется на 4-м месте 3-го ряда.

Ответы на вопрос

Ответ:
это правильный вроде если нет то вот другой
Объяснение:
n=int(input('n? '))
k=int(input('k? '))
r=0
while k>0: nr=(n+1 if r%2 else n); k-=nr; r+=1
print ('Ряд',r,'Место',nr-abs(k))




Для решения этой задачи можно использовать следующий подход:
Сначала определите, в каком ряду будет продан первый билет. Это будет ряд с номером 1, так как первые N билетов всегда идут в первом ряду.
Затем определите, в каком ряду будет продан K-й билет. Для этого вы можете использовать следующую формулу:
mathematicarow = (K - 1) // (2 * N) + 1
Здесь
//
обозначает целочисленное деление. Эта формула учитывает, что каждый ряд состоит из двух рядов продажи билетов (нечетного и четного), и мы делим номер билета на два раза количество мест в ряду (2 * N), чтобы определить номер ряда.Теперь определите номер места K-го билета в соответствующем ряду. Для этого можно использовать следующую формулу:
mathematicaseat = (K - 1) % (2 * N) + 1
Здесь
%
обозначает операцию взятия остатка от деления, и эта формула поможет определить номер места в ряду.Выведите номер ряда и номер места на экран.
Вот полный код на Python, реализующий этот подход:
pythonN = int(input())
K = int(input())
row = 1
if K > N:
row = (K - 1) // (2 * N) + 1
seat = (K - 1) % (2 * N) + 1
print(row, seat)
Этот код сначала считывает значения N и K, затем вычисляет номер ряда и номер места для K-го билета и выводит их на экран.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili