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

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

25.12.2019, 00:12. Показов 2429. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прошу помочь понять код.
Как получается такой ответ судя по введенным данным?

Во время военного похода на морского пехотинца Джо было возложено ответственное задание – развести костёр и поддерживать в нём огонь ровно m минут. Для этого у Джо есть спички и n поленьев, причём Джо известно точное время сгорания каждого полена.

Джо разжигает огонь в момент времени t = 0 и сразу бросает в него одно или несколько поленьев. Затем он должен подбрасывать в огонь новые поленья, не позволяя костру угаснуть (т.е. если последнее полено в костре догорает в момент времени t, то новое полено может быть брошено в огонь не позднее t – 1). Поленья, брошенные в огонь, загораются мгновенно. Одновременно Джо может бросить в огонь любое количество поленьев. Джо должен бросить в огонь все n поленьев.

Помогите Джо определить, сможет ли он подбрасывать поленья в огонь таким образом, чтобы костер горел ровно m минут.

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

Первая строка входного файла INPUT.TXT содержит целые числа n и m (1 ≤ n ≤ 100, 1 ≤ m ≤ 1000) – количество поленьев и время, в течение которого Джо должен поддерживать огонь в костре. Вторая строка входного файла содержит n целых чисел a1, a2, ..., an, где ai (2 ≤ ai ≤ 1000) – время сгорания i-ого полена в минутах.

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

В выходной файл OUTPUT.TXT выведите строку «yes», если Джо сможет поддерживать огонь в костре ровно m минут, и строку «no» в противном случае.
Пример

3 7 yes
2 3 5


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
#include <iostream>
 
using namespace std;
 
int main()
{
    int n, m, sum = 1, max, t; 
    cin >> n; 
    cin >> m;
    for (int i = 0; i < n; i++) 
    {
        cin >> t; 
        sum = sum + t - 1; 
 
        if (i == 0 || t > max) 
            max = t; 
    }
    if (sum >= m && max <= m)
        cout << "yes" << endl; 
    else     
        cout << "no" << endl; 
    system("pause>nul");
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.12.2019, 00:12
Ответы с готовыми решениями:

Определить, возможно ли подбросить поленья так, чтобы костёр горел ровно m минут
Привет всем. Решаю такую задачу: Во время военного похода на морского пехотинца Джо было возложено ответственное задание – развести...

Дополните число лидирующими нулями таким образом, чтобы оно имело ровно 8 знаков.
1)На вход дается единственная строчка. Выведите единственное число - количество пробелов. Пример: Вход: --To-be-or-not--to--be !--- ...

Сколькими способами 7 человек могут сесть в 3 вагона таким образом, чтобы ровно 1 вагон был пустым
На мой взгляд, по идее должно быть P_{7}\cdot A^{2}_{3}=7!\cdot 3! Это верно или нет?

12
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
25.12.2019, 09:59
Цитата Сообщение от Катя6 Посмотреть сообщение
Как получается такой ответ судя по введенным данным?
3 полена должны гореть 7 минут. Это значит время горения одного полена должно быть меньше или равно 7-ми, а сумма всех времён - больше или равно. Цифры 2-3-5 подходят под это определение
1
0 / 0 / 0
Регистрация: 18.03.2019
Сообщений: 689
25.12.2019, 22:22  [ТС]
oleg-m1973, а 4 10
3 3 3 3 почему NO? Если у нас 4 полена должны гореть 10 минут и это значит, что время горения одного полена должно быть меньше или равно 10-ми, а сумма всех времён - больше или равно. Почему тут ответ нет тогда? Там понятно почему так
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
26.12.2019, 09:06
Цитата Сообщение от Катя6 Посмотреть сообщение
3 3 3 3 почему NO?
Цитата Сообщение от Катя6 Посмотреть сообщение
cin >> t;
        sum = sum + t - 1;
Сумма неправильно считается, здесь нужно sum += t;
0
0 / 0 / 0
Регистрация: 18.03.2019
Сообщений: 689
26.12.2019, 17:12  [ТС]
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
Сумма неправильно считается, здесь нужно sum += t;
нет, он так ошибку выдает
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
26.12.2019, 17:14
Цитата Сообщение от Катя6 Посмотреть сообщение
нет, он так ошибку выдает
Какую? Покажи код
0
0 / 0 / 0
Регистрация: 18.03.2019
Сообщений: 689
26.12.2019, 17:27  [ТС]
oleg-m1973, ну тип тоже самое пишу, только вставляю вашу строку
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int n, m, sum = 1, max, t; 
    cin >> n; 
    cin >> m;
    for (int i = 0; i < n; i++) 
    {
        cin >> t; 
        sum += t; 
 
        if (i == 0 || t > max) 
            max = t; 
    }
    if (sum >= m && max <= m)
        cout << "yes" << endl; 
    else     
        cout << "no" << endl; 
    system("pause>nul");
    return 0;
}
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
26.12.2019, 17:31
Цитата Сообщение от Катя6 Посмотреть сообщение
oleg-m1973, ну тип тоже самое пишу, только вставляю вашу строку
И какая ошибка? Всё вроде нормально

Добавлено через 26 секунд
int n, m, sum = 0, max, t;
0
694 / 304 / 99
Регистрация: 04.07.2014
Сообщений: 851
26.12.2019, 17:41
Цитата Сообщение от Катя6 Посмотреть сообщение
если последнее полено в костре догорает в момент времени t, то новое полено может быть брошено в огонь не позднее t – 1
sum - n + 1 >= m
0
0 / 0 / 0
Регистрация: 18.03.2019
Сообщений: 689
26.12.2019, 17:44  [ТС]
oleg-m1973,
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
26.12.2019, 18:41
Цитата Сообщение от AlexVRud Посмотреть сообщение
sum - n + 1 >= m
Это вроде то же самое, что и в первом варианте. Катя6, там тоже не работало?
0
0 / 0 / 0
Регистрация: 18.03.2019
Сообщений: 689
26.12.2019, 19:00  [ТС]
oleg-m1973, так первый же вариант работает, сайт берет
0
694 / 304 / 99
Регистрация: 04.07.2014
Сообщений: 851
26.12.2019, 21:18
Прошу помочь понять код.
1.

т.е. если последнее полено в костре догорает в момент времени t, то новое полено может быть брошено в огонь не позднее t – 1
Что бы получить максимальное время которое будет гореть огонь надо: сложить время горения всех полений и отнять n-1 пересечение по 1 минуте. И это время должно быть больше чем m. Т.е.:

https://www.cyberforum.ru/cgi-bin/latex.cgi?t_{max} = \sum_ia_i - n + 1 \geq m

2.

задание – развести костёр и поддерживать в нём огонь ровно m минут.
Из этого выражения следует, что огонь не должен гореть больше m минут. Найдём минимальное время горения костра как максимальное время горения полена. Т.е.:

https://www.cyberforum.ru/cgi-bin/latex.cgi?t_{min} = \max_i(a_i) \leq m

3. Мы можем получить любое время горения костра от https://www.cyberforum.ru/cgi-bin/latex.cgi?t_{min} до https://www.cyberforum.ru/cgi-bin/latex.cgi?t_{max}

Элементарно доказывается.

Как получается такой ответ судя по введенным данным?
понять, что считалось в программе. Т.е. в ней max=https://www.cyberforum.ru/cgi-bin/latex.cgi?t_{min} и sum=https://www.cyberforum.ru/cgi-bin/latex.cgi?t_{max}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.12.2019, 21:18
Помогаю со студенческими работами здесь

Можно ли настроить звук таким образом, чтобы при отключении колонок он шел в наушники?
У меня есть колонки и наушники. Можно ли настроить звук таким образом чтобы при включении колонок (они обычно у меня отключены, просто чаще...

Изменить код таким образом, чтобы данные цифры можно было вводить в процессе запуска программы
Есть программа. Необходимо изменить код таким образом, чтобы данные цифры можно было вводить в процессе запуска программы static void...

Создать static таким образом, чтобы его цвет был таким же, как у окна
Нужно создать метку таким образом чтобы цвет метки был таким же как у окна. HWND hLabelFrom = CreateWindow(&quot;STATIC&quot;,...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru