
В кинотеатре места часто расставляют со сдвигом соседних рядов для удобства зрителей. Пусть в таком
кинотеатре 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-го проданного билета. Пример Ввод 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))
Объяснение:



Ответ:
def run():
n = int(input())
k = int(input())
r = 1
while k > n:
k -= n
if r % 2 == 1:
n += 1
else:
n -= 1
r += 1
return str(r) + ' ' + str(k)
print(run())
Объяснение:
Python, на 60 баллов



Для решения этой задачи нужно учесть, что билеты продаются в четных и нечетных рядах по-разному, а также определить, в каком ряду будет продаваться K-й билет.
Давайте рассмотрим несколько случаев:
Если K <= N * (N + 1), это значит, что билеты будут продаваться в нечетных рядах. Для определения номера ряда, можно воспользоваться формулой:
row = (K - 1) / N + 1
Где "/" обозначает целочисленное деление, и мы прибавляем 1, чтобы получить номер ряда с учетом начала с 1.
Теперь, чтобы найти номер места в этом ряду, можно воспользоваться формулой:
seat = K - (row - 1) * N
Если K > N * (N + 1), это значит, что билеты будут продаваться в четных рядах. Для определения номера ряда в этом случае, также используем формулу:
row = (K - 1 - N * (N + 1)) / (N + 1) + 1
Где "/" обозначает целочисленное деление, и мы прибавляем 1, чтобы получить номер ряда с учетом начала с 1.
А номер места в этом ряду можно найти так:
seat = K - N * (N + 1) - (row - 1) * (N + 1)
Теперь давайте напишем код для решения этой задачи на Python:
pythonN = int(input())
K = int(input())
if K <= N * (N + 1):
row = (K - 1) // N + 1
seat = K - (row - 1) * N
else:
K -= N * (N + 1)
row = (K - 1) // (N + 1) + 1
seat = K - N * (N + 1) - (row - 1) * (N + 1)
print(row, seat)
Теперь, если вы введете значения N = 10 и K = 25, программа выведет "3 4", как в вашем примере.


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