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

Задача Электросамокат

05.04.2022, 19:27. Показов 4274. Ответов 11

Студворк — интернет-сервис помощи студентам
Помогите решить. компилятор дает ошибку постоянно
Петя любит кататься по тротуарам на электросамокате. Пете очень нравится нестись на большой скорости и распугивать прохожих, но его расстраивает, когда у электросамоката садится аккумулятор, и приходится оставлять самокат на стоянке на зарядку и брать новый.

Петя выезжает на самокате из точки с координатой 0 и едет по прямой в точку с координатой L. Самокат может проехать без подзарядки не более D. Начальная станция находится в точке 0, в ней Петя берёт первый самокат. Между начальной и конечной станцией располагается n промежуточных станций, где можно оставить самокат и взять новый. Промежуточные станции заданы координатами a1, a2,... an.

Петя хочет как можно реже менять самокат и добраться до точки L. Помогите ему определить, удастся ли ему добраться до точки L и какое минимальное количество электросамокатов для этого потребуется.

Входные данные
Первая строка содержит три числа: L — координаты конечной точки (1≤L≤10000), D (0≤D≤10000) — сколько самокат может ехать без подзарядки, число n (1≤n≤100) — количество промежуточных точек. Вторая строка ввода содержит n целых чисел ai (0<ai<L), разделенных пробелами, — координаты промежуточных станций. Координаты различны и отсортированы по возрастанию.

Выходные данные
Выведите единственное целое число — минимальное количество электросамокатов потребуется, чтобы добраться от точки 0 в точку L. Если добраться до точки L не получится, выведите −1.

Пример
входные данныеСкопировать
11 5 4
4 6 7 10
выходные данныеСкопировать
3
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.04.2022, 19:27
Ответы с готовыми решениями:

Электросамокат(нормальное условие)
Петя любит кататься по тротуарам на электросамокате. Пете очень нравится нестись на большой скорости и распугивать прохожих, но его...

Электросамокат для взрослого человека. Это удобно?
Хотелось бы узнать, насколько удобно передвигаться в пределах города на электросамокате взрослому человеку? Смотрю сейчас много на...

Олимпиадная задача по программированию. PascalABC.NET. Задача L. Переключение между окнами
Когда пользователь работает в операционной системе Winux, у него часто запущено несколько приложений. Каждое из приложений работает в...

11
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
05.04.2022, 20:35
Цитата Сообщение от Valentin000000 Посмотреть сообщение
компилятор дает ошибку постоянно
какую ошибку и какой компилятор?
0
-2 / 6 / 5
Регистрация: 19.01.2022
Сообщений: 201
05.04.2022, 22:47
Pycharm наверно
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,707
06.04.2022, 02:52
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
L, D, n = map( int, input( 'L, D, n = ' ).split() )
a = list( map( int, input( 'a = ' ).split() ) )
a.insert(0,0)
a.append(L)
diff = []
for i in range(1, len(a)):
    diff.append(a[i]-a[i-1])
counter = 0
sum     = 0
while diff:
    while diff and sum + diff[0] <= D:
        sum += diff.pop(0)
    counter += 1
    sum     = 0
print(counter)
0
-2 / 6 / 5
Регистрация: 19.01.2022
Сообщений: 201
06.04.2022, 18:12
Слишком медленное решение
на 10000 не проходит
если 1 сек ограничение как сказал автор задачи

Добавлено через 5 минут
Например если:
10000 50 99
(и тут 9 точек каких-то)
то считает долгo
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
06.04.2022, 18:16
переделай на стек
0
-2 / 6 / 5
Регистрация: 19.01.2022
Сообщений: 201
06.04.2022, 21:36
что конкретно?

Добавлено через 2 часа 53 минуты
Ауу

Добавлено через 25 минут
C++
1
v
Как задачу решить?
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,707
06.04.2022, 22:28
А так:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
L, D, n = map( int, input( 'L, D, n = ' ).split() )
a = list( map( int, input( 'a = ' ).split() ) )
a.insert(0, 0)
a.append(L)
diff = []
for i in range(1, len(a)):
    diff.append(a[i]-a[i-1])
counter = 0
sum     = 0
j       = 0
while j < len(diff):
    while j < len(diff) and sum + diff[j] <= D:
        sum += diff[j]
        j   += 1
    counter += 1
    sum     = 0
print(counter)
0
-2 / 6 / 5
Регистрация: 19.01.2022
Сообщений: 201
06.04.2022, 23:25
То же самое
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
y, z, n = map(int, input('').split())
x = list(map(int, input('').split()))
x.insert(0, 0)
x.append(y)
diff = []
for i in range(1, len(x)):
    diff.append(x[i]-x[i-1])
counter = 0
sum = 0
bebra = 0
while bebra < len(diff):
    while bebra < len(diff) and sum + diff[bebra] <= z:
        sum += diff[bebra]
        bebra = bebra + 1
    counter = counter + 1
    sum = 0
print(counter)
Это тоже не работает

Добавлено через 37 минут
Слишком долго программа выполняется
если допустим L = 10000
и 100 какихто промежуточных
0
-2 / 6 / 5
Регистрация: 19.01.2022
Сообщений: 201
07.04.2022, 23:51
uup
задачу помогите решить
выполняется мелденно
0
-2 / 6 / 5
Регистрация: 19.01.2022
Сообщений: 201
10.04.2022, 11:26
Вот готовое решение
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
y, z, n = map(int, input('').split())
x = list(map(int, input('').split()))
x.insert(0, 0)
x.append(y)
v = False
diff = []
for i in range(1, len(x)):
    diff.append(x[i]-x[i-1])
counter = 0
sum = 0
b = 0
print(diff)
print(x)
while b < len(diff):
    while b < len(diff) and sum + diff[b] <= z:
        sum = sum + diff[b]
        b = b + 1
    if counter <= 50000:
        counter = counter + 1
        sum = 0
    else:
        print(-1)
        v = True
        break
if v == False:
    print(counter)
12,13 строчку можно удалить
0
Вирусоборец
 Аватар для thyrex
14439 / 7481 / 1579
Регистрация: 06.09.2009
Сообщений: 27,119
10.04.2022, 12:24
shinzin, не просветите причину появления строки???
Python
18
    if counter <= 50000:
Или что-то не договорили в условии задания?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.04.2022, 12:24
Помогаю со студенческими работами здесь

Васильев C# Глава 7 задача 8 (Просьба объяснить формулировку(задача внутри)
Текст задачи Напишите программу с классом, у которого есть текстовое поле. Значение текстовому полю присваивается при создании объекта...

Васильев C# Глава 8 задача 2 (Просьба объяснить формулировку(задача внутри)
Текст задачи Написать программу , в которой есть класс с полем, являющимся ссылкой на одномерный целочисленный массив. У класса есть...

Задача со строками. Задача находится на фотке, которая прикреплена к сообщению
Фотку прикрепил к сообщению. П.5.4. Правил Запрещено создавать темы с бессмысленными названиями вроде &quot;Помогите!&quot;,...

Задача при создание нового лида выводится задача от несущ.пользователя Б24
При создание нового Лида Выходит уведомление от пользователя которого нету в компаний. Как поменять пользователя???

Задача на перебор вариантов. Задача Л.Эйлера. Про чиновника
Задача Л.Эйлера. Некий чиновник купил лошадей и быков на сумму 1770 талеров. За каждую лошадь он уплатил по 31 талеру, а за каждого быка по...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru