Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 11.05.2023
Сообщений: 94

Самый быстрый поезд

22.01.2024, 19:43. Показов 841. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Быстрый поезд
(Время: 1 сек. Память: 16 Мб Сложность: 30%)
Между двумя крупнейшими городами нашей страны Санкт-Петербургом и Москвой ежедневно совершают рейсы n поездов. Для каждого поезда известно его время отправления из Санкт-Петербурга и время прибытия в Москву.

Найдите самый быстрый поезд и его скорость в предположении, что длина железной дороги между Санкт-Петербургом и Москвой равна 650 км.

Входные данные
Первая строка входного файла INPUT.TXT содержит целое число n (1 ≤ n ≤ 100). Каждая из последующих n строк описывает ровно один поезд.

Описание поезда состоит из его названия, времени отправления и времени прибытия. Название поезда – строка длиной от 1 до 50 символов, заключенная в кавычки. Она может содержать буквы английского алфавита, пробелы, цифры, символы тире («–») и подчеркивания («_»). Время отправления и прибытия заданы в формате ЧЧ:ММ. Строчные и заглавные буквы в названиях поездов различаются.

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

Гарантируется, что самый быстрый поезд определяется единственным образом.

Выходные данные
В выходной файл OUTPUT.TXT выведите название самого быстрого поезда и его скорость. Скорость выводите в километрах в час и округляйте к ближайшему целому по математическим правилам. Следуйте формату вывода, приведенному в примерах.





3
"ER-200" 06:43 10:40
"Red Arrow" 23:55 07:55
"Express" 23:59 08:00
Ответ:
The fastest train is "ER-200".
Its speed is 165 km/h, approximately.


3
"Train1" 00:00 00:00
"Train2" 00:00 00:01
"Train3" 00:01 00:01
Ответ:
The fastest train is "Train2".
Its speed is 39000 km/h, approximately.


2
"Slow Train 1" 10:00 09:59
"Slow Train 2" 10:00 10:00
Ответ: The fastest train is "Slow Train 1".
Its speed is 27 km/h, approximately.

Написал вот такое решение:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from decimal import *
 
n = int(input())
list_n = []
info = []
for i in range(n):
    data = str(input())
    depart = str(data[-11:-6])
    income = str(data[-5:])
    info.append(depart)
    info.append(income)
    list_n.append(data)
names = []
answers = []
for i in range(len(list_n)):
    first = list_n[i].find('"')
    second = list_n[i].rfind('"')
    all = list_n[i][first + 1:second]
    names.append(all)
for i in range(0, len(info), 2):
    hours1 = int(str(info[i][:2]))
    hours2 = int(str(info[i + 1][:2]))
    minutes1 = int(str(info[i][3:]))
    minutes2 = int(str(info[i + 1][3:]))
    final_time1 = hours1 * 60 + minutes1
    final_time2 = hours2 * 60 + minutes2
    if final_time2 > final_time1:
        fin = final_time2 - final_time1
    else:
        k = final_time2 - final_time1
        fin = k + 24 * 60
    an = fin / 60
    r = 650 / an
    ans = Decimal(str(r)).quantize((Decimal('1')))
    answers.append(ans)
f = max(answers)
klo = answers.index(f)
res = names[klo]
print(f'The fastest train is "{res}".')
print(f'Its speed is {f} km/h, approximately.')
но на 9 тесте WrongAnswer. Подскажите, кто может, в чем ошибка? Мне кажется у меня че то с округлением не то, но вроде как долно все округляться нормально
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.01.2024, 19:43
Ответы с готовыми решениями:

Самый быстрый парсер
Доброго времени суток, интересует вопрос касательно скорости питоновских библиотек для парсинга, требуется скачивать с сайта фотографии ...

Описать класс "Поезд" и производные классы «Товарный поезд», «Пассажирский поезд»
Описать класс ≪поезд≫, содержащий следующие поля:• название пункта назначения;• номер поезда (может содержать буквы и цифры);• время...

Самый быстрый способ http запросов
Коллеги, раздуплите Есть массив с урлами, их около 500-100штук, когда как. Необходимо выполнять get запрос, парсить отданное и...

2
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
22.01.2024, 21:06
mikhailchess,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
…
    #an = fin / 60
    #r = 650 / an
    #ans = Decimal(str(r)).quantize((Decimal('1')))
    #answers.append(ans)
    answers.append(fin)
#f = max(answers)
f = min(answers)
klo = answers.index(f)
res = names[klo]
f = int(round(39000/f, 0))
"""
111 00:00 00:00
222 00:00 23:59
"""
Добавлено через 4 минуты
Код можно короче:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def fun(s):
    h, m = s.split(':')
    return int(h)*60 + int(m)
 
times = 1441
for _ in range(int(input())):
    tmp = input().split()
    
    t = (fun(tmp[-1]) - fun(tmp[-2]))%1440 or 1440
    if t < times:
        times = t 
        names = ' '.join(tmp[:-2])
        
print(f'The fastest train is "{names}".')
print(f'Its speed is {int(round(39000/times, 0))} km/h, approximately.')
Добавлено через 1 минуту
«Ошибка» в Вашем коде - ищете максимум округленных результатов…
1
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
22.01.2024, 21:07
Лучший ответ Сообщение было отмечено mikhailchess как решение

Решение

Ну, так можно:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
DIST_KM = 650
DAY_M = 24*60
 
def time_to_m(s):
    h,m = s.split(':')
    h = int(h)
    m = int(m)
    m += h*60
    return m
 
n = int(input('n = '))
dist_m_min = DAY_M * 2
name_min = None
for _ in range(n):
    s = input('name, start_time, finish_time->')
    name, q, times = s.rpartition('"')
    name += q
    start_time, finish_time = times.split()
    start_m = time_to_m(start_time)
    finish_m = time_to_m(finish_time)
    dist_m = (finish_m - start_m) % DAY_M
    if not dist_m:
        dist_m = DAY_M
    if dist_m < dist_m_min:
        dist_m_min = dist_m
        name_min = name
dist_h_min = dist_m_min/60
v = round(DIST_KM / dist_h_min)
print(f'The fastest train is {name_min}.')
print(f'Its speed is {v} km/h, approximately.')
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.01.2024, 21:07
Помогаю со студенческими работами здесь

Определить самый быстрый способ добраться до учебы
У Олега есть карта &quot;Тройка&quot;, на которой осталась одна поездка на наземном транспорте. От дома Олега до школы можно доехать на трамвае,...

Найти самый быстрый поезд
Быстрый поезд Между двумя крупнейшими городами нашей страны Санкт-Петербургом и Москвой ежедневно совершают рейсы n поездов. Для...

Найдите самый быстрый поезд и его скорость
Помогите с кодом, пожалуйста! Между двумя крупнейшими городами нашей страны Санкт-Петербургом и Москвой ежедневно совершают рейсы n...

Быстрый поезд
Быстрый поезд Между двумя крупнейшими городами нашей страны Санкт-Петербургом и Москвой ежедневно совершают рейсы n поездов. Для...

Быстрый поезд
Между двумя крупнейшими городами нашей страны Санкт-Петербургом и Москвой ежедневно совершают рейсы n поездов. Для каждого поезда известно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru