Вопрос задан 02.10.2023 в 17:30. Предмет Информатика. Спрашивает Тимофеева Дарья.

Задача 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-го ряда. СДАТЬ РЕШЕНИЕ В ЯЗЫКЕ ПРОГРАММИРОВАНИЯ- ЖЕЛАТЕЛЬНО PYTHON 3 3.6.8
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Крымский Никита.

Ответ:

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))

Объяснение:

Язык:питон

Тоже олимпиаду делаешь?

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи можно использовать следующий алгоритм:

  1. Считать два целых числа: N (количество мест в 1-м ряду) и K (порядковый номер проданного билета).

  2. Рассмотреть два случая:

    • Если K <= N * (N + 1) / 2 (сумма чисел от 1 до N), это означает, что билет продан в нечётном ряду. Найдите номер ряда как int(sqrt(2 * K - 1)) и номер места как K - (номер ряда - 1) * номер места в ряду.
    • В противном случае, билет продан в чётном ряду. Найдите номер ряда как int(sqrt(2 * (K - N * (N + 1) / 2))) и номер места как K - N * (N + 1) / 2 - (номер ряда - 1) * номер места в ряду.
  3. Вывести номер ряда и номер места.

Вот Python-код, реализующий этот алгоритм:

python
import math # Считываем входные данные N = int(input()) K = int(input()) # Вычисляем номер ряда и номер места if K <= N * (N + 1) // 2: row = int(math.sqrt(2 * K - 1)) seat = K - (row - 1) * row // 2 else: K -= N * (N + 1) // 2 row = int(math.sqrt(2 * K)) seat = K - (row - 1) * row // 2 # Выводим результат print(row, seat)

Этот код должен решать задачу для заданных входных данных и выводить номер ряда и номер места K-го проданного билета.

0 0

Похожие вопросы

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

Последние заданные вопросы в категории Информатика

Задать вопрос