0 / 0 / 0
Регистрация: 13.11.2022
Сообщений: 1

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

13.11.2022, 20:37. Показов 606. Ответов 1

Студворк — интернет-сервис помощи студентам
Как решить задачу на c++?
У повара есть n кусков лапши, длина i-го куска равна ai сантиметров. Однажды к нему пришел очень важный, но очень привередливый клиент. Он требует, чтобы все куски лапши в его тарелке были длиной ровно 10 сантиметров.

Повар знает, что пока закипит вода он успеет сделать не больше m разрезов. Каждый разрез выглядит так: повар выбирает кусок лапши, пусть его длина x (x > 1) сантиметров, и целое число y, такое, что 0 < y < x. Далее он разрезает этот кусок на два других с длинами y и x - y соответственно.

Сколько кусков лапши длиной 10 сантиметров может получить повар?
Входные данные
В первой строке задано целое число n (1 ≤ n ≤ 50) — число кусков лапши у повара.
Во второй строке заданы n целых чисел ai — длины кусков (1 ≤ ai ≤ 1000).

В третьей строке задано целое число m (1 ≤ m ≤ 1000) — максимальное число разрезов.

Выходные данные
Выведите максимальное число кусков длины 10, которое сможет получить повар, сделав не более m разрезов.

Входные данные
3
13 20 13
2
Выходные данные
3

Вот мой код, но он валит некоторые тесты (какие незнаю):
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
59
60
61
62
#include <bits/stdc++.h>
#define int long long
#define yes cout << "YES"
#define no cout << "NO"
using namespace std;
void solve()
{
    int n, m;
    cin >> n;
    int a[n];
    int ccc = 0;
    for(int i = 0; i < n; i++)
    {
        cin >> a[i];
        ccc += a[i] / 10;
    }
    cin >> m;
    int cnt = 0;
    int j = 0;
    for(int i = 0; i < n; i++)
    {
        if(a[i] % 10 == 0)
        {
            swap(a[i], a[j]);
            j++;;
        }
    }
    sort(a, a+j);
    sort(a+j, a+n);
    for(int i = 0; i < n; i++)
    {
        if(m == 0)
            break;
        if(a[i] == 10)
            cnt++;
        if(a[i] != 10)
        {
            if(a[i] / 10 > m)
            {
                cnt += min(a[i] / 10, m);
                break;
            }
            else
            {
                cnt += a[i] / 10;
                if(a[i] % 10 == 0) m -= a[i] / 10 - 1;
                else m -= a[i] / 10;
            }
        }
    }
    cout << cnt;
}
main()
{
    /*int t;
    cin >> t;
    while(t--)
    {*/
        solve();
        /*cout << '\n';
    }*/
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.11.2022, 20:37
Ответы с готовыми решениями:

Гость из прошлого. Выведите одно целое число — максимальное количество литров кефира, которое сможет выпить Коля
Коля Герасимов очень любит кефир, и в своём 1984 году он освоил все тонкости покупки этого чудесного напитка. Но однажды, как вам,...

Максимальное число, которое вы можете получить, изменив не более одной цифры
На вход программе подается положительное целое число n, состоящее только из цифр 6 и 9. Напишите программу, которая возвращает максимальное...

Разрезать круглую пиццу на заданное число кусков, делая заданное число прямолинейных разрезов ножом
Помогите, пожалуйста решить задачу. Дана пицца, имеющая форму круга. Её нужно разрезать на заданное число кусков, делая заданное число...

1
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
14.11.2022, 11:26
Цитата Сообщение от TokiJump Посмотреть сообщение
Вот мой код,
я так понимаю, вы решили заменить отладку размещением кода на форуме?

Вот какие фрагменты лично у меня вызвали сомнение:
- цикл стр.20-27 как отработает если самый младший элемент массива кратен десяти? Не закинет ли его куда-то в конец массива?
- сортировка стр 28 и 29 элемент с адресом (a+j) входит в обе сортировки, мне кажется, так быть не должно.
- строки 38 и 40. Судя по всему, закодировано не то, что планировали. Строка 40 выполняется только если m - минимум.
И при этом теряем случай когда режем кратную 10 макаронину. Пусть m=3, длина макаронины 40. Эту ситуацию код не отработает корректно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.11.2022, 11:26
Помогаю со студенческими работами здесь

Выведите одно целое число — максимальное число, которое могло получиться в протоколе при игре на данном поле
У пети имеется игровое поле размером 3х3, заполненное числами от 1 до 9. В начале игры он может поставить фишку в любую клетку поля. На...

Выведите одно целое число — максимальное число, которое могло получиться в протоколе при игре на данном поле
У Пети имеется игровое поле размером 3×3 , заполненное числами от 1 до 9. В начале игры он может поставить фишку в любую клетку поля. На...

Найти максимальное число в матрице, которое повторяется не более одного раза
Var a:array Procedure TForm1.Button1Click Var max,j,i,k,s:integer; Begin StringGrid.Rowcount:=10; StringGrid.ColCount:=10; ...

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

Вывести количество различных слов, которое можно получить, сделав в s ровно одну опечатку
В первой строке записано единственное целое число n (1 ≤ n ≤ 26) - размер алфавита. Во второй строке записана строка s (2 ≤ | s | ≤...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru