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

Задача B. Мерцающие звёзды Современных звёздных путешественников очень трудно удивить. Однако фирма Amazing Star Travel хочет предложить нечто новое: наблюдения за мерцающими звёздами. Это очень эффектное явление, возникающее в тот момент, когда мощную звезду заслоняет планета. Для этого разработан маршрут между двумя точками A и B. Специалисты фирмы выделили NN наиболее ярких звёзд в видимой части космоса и отметили MM крупных планет. Осталось подсчитать, сколько раз за время путешествия по отрезку AB путешественники насладятся видом мерцающей звезды.

Входные данные.

В первой строке содержится четыре целых числа через пробел XA, YA, XB, YB – координаты точек A и В. Во второй строке содержатся числа NN и MM, разделенные пробелом (0 \leq N,M \leq 1000≤N,M≤100) – количество звёзд и количество планет соответственно. В каждой из следующих N строк содержатся координаты очередной звезды. Далее в каждой из следующих M строк содержатся координаты очередной планеты. Все координаты целые, по модулю не превосходят 1000. Гарантируется, что никакие три точки из всех вышеперечисленных не находятся на одной прямой.

Выходные данные.

В ответе нужно выдать одно число – количество случаев, когда при движении по отрезку из точки A в точку B какая-либо звезда будет заслонена от наблюдателя планетой. Если какие-либо две звезды мерцают одновременно, то это считается как два независимых случая. Все упомянутые объекты считаем материальными точками, для упрощения вычислений все рассматриваем на плоскости. Помимо этого, согласно теории относительности, путешествие с точки зрения внешнего наблюдателя, совершается мгновенно, то есть положение звёзд и планет за время путешествия не изменяется, однако для путешественников оно достаточно длительное, чтобы наладиться захватывающими видами.

Пояснение к примеру

Sample Input:

-4 -2 2 0
3 4
-1 3
2 -1
1 -4
-3 3
-1 0
-2 -2
1 -1

Sample Output:

4


Задача B. Мерцающие звёзды Современных звёздных путешественников очень трудно удивить. Однако фирма

Показать ответ
Ответ:
444477
444477
29.05.2020 07:34

Я не уверен в решении от слова совсем, но смотри... Читаем внимательно условие.

...КАЖДАЯ КОМАНДА СЫГРАЛА С КАЖДОЙ. Из ВСЕХ участвовавших команд 20% команд НЕ СМОГЛИ ОДЕРЖАТЬ ПОБЕДУ НИ В ОДНОМ ИЗ МАТЧЕЙ...

Теперь включаем логику. Допустим у нас есть 10 команд, которые сыграли между собой. 20% от 10 - 2. Получается у нас имеется 2 команды, которые проиграли ВО ВСЕХ МАТЧАХ. А теперь задаемся вопросом "это как?".

Если с остальными командами все понятно, то как они играя между собой могли проиграть 2 сразу? (Ведь очевидно, что может быть только один победитель и только один проигравший в матче) По условию - ничьи не было. Значит делаем вывод, что искать больше одной команды, которая проиграла всем - некорректно.

Число команд, которая дает нам от 20% одного аутсайдера - 5. Получаем, что если Катя сделала фото с каждой командой на турнире, то постов у нее будет тоже 5. А команда, которая проиграла всем - одна единственная.

0,0(0 оценок)
Ответ:
Tiktak222
Tiktak222
12.02.2022 16:12

Ошибок тут достаточно, по всем пройдемся.

Первая ошибка, переменная названа как встроенная функция в Python, так делать не нужно.

Вторая ошибка, забыл ограничить if, из-за которого не будет выполняться elif. Меняем его на:

if (sum>=500) and (sum<1000)

Третья ошибка, расчет финальной цены неверный, если использовать вариант, который дан сейчас, то мы найдем процент от этой суммы, а не сумму с начисленными процентами. Меняем на:

final_sum = sums * (1+first_sale)

final_sum = sums * (1+second_sale)

Четвертая ошибка, почему у нас вывод финальной суммы через else? Получается, что если выполняются условия выше, то не выводится сумма. Этот вывод мы можем опустить ниже, а в else написать, что ввели неверные данные (если конечно подразумевается, что пользователь не должен вводить число меньшее 500), либо в elif засунуть эту строку, полной задачи у меня нет, поэтому сам с этим разберешься.

Пятая ошибка, мы не можем сложить строку с числом, нам нужно преобразовать нашу переменную к строке с str().

Исправленный код:

sums = int(input("Введите сумму покупки:"))

first_sale = 0.03

second_sale = 0.05

if sums >= 500 and sums < 1000:

   final_sum = sums * (1+first_sale)

   print("Финальная сумма равна: " + str(final_sum))

elif sums >= 1000:

   final_sum = sums * (1+second_sale)

   print("Финальная сумма равна: " + str(final_sum))

else:

   print("Введены неверные данные")

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота