Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 29.10.2019
Сообщений: 1

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

29.10.2019, 00:17. Показов 1458. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть два сосуда: в один сосуд помещается a литров воды, а во вторую - b литров. Определить минимальное количество шагов, необходимых для того, чтобы в одной из сосудов получить c литров воды.

В начале обе сосуды пустые. Следующие операции считаются "шагами":

опорожнение емкости,

заполнения сосуда,

налить воду из одного сосуда в другой, не разливая, пока одна из сосуда не будет полная или пустая.

Входные данные
В отдельных строках содержатся натуральные числа a, b, c НЕ большем за 40000

Выходные данные
Вывести минимальное количество шагов чтобы получить c литров воды или -1, если это невозможно

Пример входных данных
5
2
3
Пример выходных данных
2

Пример входных данных
2
3
4
Пример выходных данных
-1

Пример входных данных
11
5
4
Пример выходных данных
6

Пример входных данных
7
5
3
Пример выходных данных
4

Пример входных данных
10 3 9
Пример выходных данных
6



Сам делаю и не выходит.
Мой код:
С++
C++
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
47
48
49
50
51
52
53
54
55
56
57
58
#include <bits/stdc++.h>//"Я всегда пишу здесь очень  много библиотек в этой одной"
using namespace std;
long long a,b,c,x,y,i,d,k,k1,k2;
int main()
{
    ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);//"Ускорение по времени"
    cin>>a>>b>>c;
    x=0;
    y=0;
    d=(max(a,b)*3);
    if((c>a)&&(c>b)){cout<<"-1"<<'\n';return 0;}
    if((a%2==0)&&(b%2==0)&&(c%2!=0)){cout<<"-1"<<'\n';return 0;}
    if((a==b)&&(a==c)){cout<<"1"<<'\n';return 0;}
    k=0;
    for(i=0;i<d;i++)
    {
       if(((x==c)||(y==c))||((x==c)&&(y==c))){k1=k;break;}else
        {
            x+=a;k++;
            if(((x==c)||(y==c))||((x==c)&&(y==c))){k1=k;break;}else
                {
                    if(x>=y)
                    {
                       y=b;
                       x-=y;
                       k++;
                    }
                }
                if(((x==c)||(y==c))||((x==c)&&(y==c))){k1=k;break;}
        }
 
    }
    x=0;y=0;
    k=0;
    for(i=0;i<d;i++)
    {
       if(((x==c)||(y==c))||((x==c)&&(y==c))){k2=k;break;}else
        {
            y+=b;k++;
            if(((x==c)||(y==c))||((x==c)&&(y==c))){k2=k;break;}else
                {
                    if(x<=y)
                    {
                       x=a;
                       y-=x;
                       k++;
                    }
                }
                if(((x==c)||(y==c))||((x==c)&&(y==c))){k2=k;break;}
        }
    }
    if(k1==0)k1=1900000;
    if(k2==0)k2=1900000;
    k=min(k1,k2);
    if((k1==1900000)&&(k1==k2))cout<<"-1"<<'\n';else
    cout<<k<<'\n';
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.10.2019, 00:17
Ответы с готовыми решениями:

Определить минимальное количество отрезков единичной длины необходимых для того чтоб покрыть все точки
И снова здравствуйте.Условие:даны N точек с двойной точностью(точки заданные вещественными числами ). Определить минимальное количество...

Определить минимальное количество операций необходимо для того, чтобы сделать число a равным числу b
Помогите пож-ста срочно

Найти количество шагов, необходимых для сведения чисел к их палиндромам
Помогите решить, завал не успеваю Введено число N например 59. Оно не палиндром. &quot;Перевернем&quot; его, получим 95. Найдем сумму...

1
43 / 39 / 5
Регистрация: 16.09.2019
Сообщений: 285
29.10.2019, 07:42
Цитата Сообщение от Letali Посмотреть сообщение
обе сосуды
какого они объёма-то, сами сосуды?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.10.2019, 07:42
Помогаю со студенческими работами здесь

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

Найти минимальное количество поездок машиниста для того, чтобы сформировать три состава
Текст задачи: Железнодорожное полотно разветвляется на два тупика В и С. К этому разъезду подходит состав (не более 255 вагонов)....


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru