Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 1
Регистрация: 10.09.2015
Сообщений: 5

Выведите минимальное количество дозаправок автобуса, которые необходимы, чтобы совершить k рейсов

25.09.2017, 14:30. Показов 1909. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот такая вот задачка, помогите пожалуйста
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.09.2017, 14:30
Ответы с готовыми решениями:

Подсчитать минимальное количество действий, которые надо совершить обезьянке, чтобы получить кучу из n камней
Цирк, цирк, цирк! Цирковая обезьянка еще не может быть полноценным игроком в Ним, но она обучена либо удваивать количество камней в...

Выведите минимальное количество монет, которые нужно перевернуть
На столе лежат n монеток. Некоторые из них лежат вверх решкой, а некоторые – гербом. Определите минимальное число монеток, которые нужно...

Определить минимальное количество переправ, которое придется совершить во время похода
№4. Поход Группа школьников решила сходить в поход вдоль реки-Иртыш. У реки-Иртыш существует множество притоков, которые могут впадать...

2
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
25.09.2017, 15:01
Текст заданий следует печатать в теме, читайте правила.
0
0 / 0 / 1
Регистрация: 10.09.2015
Сообщений: 5
25.09.2017, 15:42  [ТС]
Лучший ответ Сообщение было отмечено FlatCar как решение

Решение

Извините, не читал правила, вот текст
Автобус курсирует по координатной прямой Ох от точки х = 0 до точки х = a. Выехав из точки х = 0, он доезжает до точки х = а, сразу разворачивается и едет обратно в точку х = О. Вернувшись в точку х = 0, он сразу снова едет в точку х = а и так далее. Таким образом, автобус курсирует от х = 0 до х= а и обратно. Переезд из точки х= 0 в х= а или из точки х = а в х = 0 называется рейсом автобуса. Всего автобус должен совершить k рейсов. Бензобак автобуса вмещает b литров бензина. На преодоление единицы расстояния автобус тратит равно один литр бензина. Свой путь автобус начинает с полным бензобаком. Между х= 0 и х=a в точке х= f находится заправка. Других заправок на пути автобуса нет. Проезжая мимо заправки в любом из двух направлений, автобус может остановиться и пополнить запас бензина в бензобаке. Таким образом, после остановки на заправку в бензобаке автобуса будет b литров бензина. Какое минимальное количество раз автобус должен доза-правиться в точке х = f, чтобы начав путь в точке х = 0 совершить k рейсов? Формат входных данных В первый строке записаны четыре целых числа a,b,f,k (0 < f < а < 10^6, 1 < b < 10^9, 1 < k < 10^4) — точка окончания первого автобусного рейса, вместимость бензобака автобуса, точка, в которой расположена заправка, а также требуемые количество рейсов.
Формат выходных данных Выведите минимальное количество дозаправок автобуса, которые необходимы, чтобы совершить k рейсов. Если автобус пе сможет совершить k рейсов, выведите -1.

Уже почти решил сам, осталась 1 проблема

Pascal
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
41
42
43
44
45
46
var
  a, b, f, k, i, x, c, v: integer;
 
begin
  v := b;
  readln(a, b, f, k);
  x:=0; //счетчик заправок
  
  if (k mod 2 = 0) and (k > 2) then //если кол-во рейсов четное и больше 2
    for i := 1 to (k - 2) div 2 do
    begin
      b := b - f; //доезжаем до заправки
      if b < 2 * (a - f) then //если нам не хватает топлива доехать до заправки на обратном пути
      begin
        x := x + 1; //заправляемся
        b := v - (2 * (a - f)); //находимcя на заправке на обратном пути
        if b < 2 * f then
        begin
          x := x + 1;
          b := v - 2 * f;
        end
      end else
      if b < 2 * a then // если нам хватает топлива доехать до заправки на обратном пути, но не хватает на круг от заправки и до
      begin
        x := x + 1;
        b := v - 2 * f//остановились на заправке
      end else
      if (b > 2 * a) and (b < 2 * a + 2 * (a - f)) then //если нам хватает на 2 круга, но не больше
      begin
        x := x + 1;
        b := v;
      end;
    end;
  if b < 2 * (a - f) then //тут начинаем завершать последние 2 рейса
  begin
    x := x + 1;
    b := v - 2 * (a - f);
    if b < f then
      x := x + 1; //вот тут проблемка при таких входных данных: 6 10 2 4 он исполняет это действие, хотя не должен так как b=f на этот момент равны
 
  end else
  if (b > 2 * (a - f)) and (b < 2 * (a - f) + f) then
    x := x + 1;
  
  writeln(x);
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.09.2017, 15:42
Помогаю со студенческими работами здесь

Как за минимальное количество денег группе лиц совершить переезд на трамвае?
Ловлю WA4, Задачу делал через Флойда, помогите найти ошибку или дайте рабочий тест. #include&lt;iostream&gt; #include&lt;fstream&gt; ...

Определить минимальное количество символов, которые нужно добавить в строку, чтобы получить палиндром
Здравствуйте, помогите пожалуйсто, был бы очень признателен хотя бы за идею решения(поидеи методом ветвей и границ она решается) ...

Определить минимальное количество символов, которые нужно добавить в строку, чтобы получить палиндром
Определить минимальное количество символов, которые нужно добавить в строку, чтобы получить палиндром например: ввод aziz ...

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

Выведите минимальное количество перемещений
3. Шашлыки Имя входного файла input.txt Имя выходного файла output.txt Максимальное время работы на одном тесте 2 секунды ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере 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 На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru