2 / 2 / 0
Регистрация: 02.12.2023
Сообщений: 80

Как купить носки с выгодой

03.12.2023, 19:29. Показов 2404. Ответов 33

Студворк — интернет-сервис помощи студентам
Пара носков стоит 10 руб. 50 коп., связка (12 пар) стоит 102 руб. 50 коп., а коробка (12 связок) стоит 1140 руб.

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

Входной файл INPUT.TXT содержит натуральное число N (N ≤ 109) – число пар носков, которые желает купить покупатель.

Выходной файл OUTPUT.TXT должен содержать три числа (первое – количество коробок, второе – связок, третье – пар носков), разделенные пробелами.

Примеры
11
0 1 0

500
3 5 8
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.12.2023, 19:29
Ответы с готовыми решениями:

как заставить мужчину убирать грязные носки?
Встречный вопрос: как заставить мужчину убирать грязные носки? :D

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

Замерить толщину покрытия стола носками
Носки Имеется стол длины L . На столе разложено N носков так, что никакой носок не вылезает за границы стола. Далее имеется умный...

33
Вирусоборец
 Аватар для thyrex
14450 / 7489 / 1582
Регистрация: 06.09.2009
Сообщений: 27,133
03.12.2023, 20:34
Суть задачи в том, что за те же деньги можно купить чуть больше.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6234 / 2943 / 1047
Регистрация: 01.06.2021
Сообщений: 10,939
03.12.2023, 20:42
одна пара стоит 10,5
одна пара из связки стоит 8,5
одна пара из коробки стоит 7,91(6)

Как видно, в меру возможности и необходимости нужно предпочесть коробки, потом связки и только потом отдельные пары.
0
2 / 2 / 0
Регистрация: 02.12.2023
Сообщений: 80
03.12.2023, 20:52  [ТС]
Royal_X, thyrex,
Python
1
2
3
4
5
6
7
8
9
10
11
12
a = int(input())
e = a % 12
m = 0
f = 0
if e in [10, 11]:
    e = 0
    m = a // 12 + 1
else:
    m = a // 12
f = m // 12
m = m % 12
print(f, m, e)
Вот мой код, который не работает
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6234 / 2943 / 1047
Регистрация: 01.06.2021
Сообщений: 10,939
03.12.2023, 20:53
Цитата Сообщение от IlyaTop Посмотреть сообщение
11
0 1 0
а вот это уже интересно. Т.е. получается, что можно покупать больше, чем нужно покупателю
0
Вирусоборец
 Аватар для thyrex
14450 / 7489 / 1582
Регистрация: 06.09.2009
Сообщений: 27,133
03.12.2023, 20:57
Royal_X, я об этом выше и писал.

IlyaTop, там другой принцип. Надо просчитывать сумму перед тем, как отдавать предпочтение.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6234 / 2943 / 1047
Регистрация: 01.06.2021
Сообщений: 10,939
03.12.2023, 21:07
Цитата Сообщение от thyrex Посмотреть сообщение
там другой принцип. Надо просчитывать сумму перед тем, как отдавать предпочтение.
Не обязательно. Просто можно учесть некоторые моменты, что, например, если даже осталось не 12, а 10 или 11 пар, то мы все равно берем связку (и пусть останется 1 или 2 лишних пар, но так дешевле).

Добавлено через 4 минуты
thyrex, как-то так

Python
1
2
3
4
5
6
7
8
9
10
11
n = int(input('N = '))
 
a = n // 144
b = (n - a * 144) // 12
t = n - a * 144 - b * 12
if t >= 10:
    b += 1
    c = 0
else:
    c = t
print(a, b, c)
Особо не проверял, код как идея
0
Вирусоборец
 Аватар для thyrex
14450 / 7489 / 1582
Регистрация: 06.09.2009
Сообщений: 27,133
03.12.2023, 21:07
Royal_X, хозяин - барин. Просчитывайте остатки. Автор темы в своём решении пошёл по Вашему пути, но что-то пошло не так
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6234 / 2943 / 1047
Регистрация: 01.06.2021
Сообщений: 10,939
03.12.2023, 21:08
thyrex, напиши свой вариант с суммой, интересно посмотреть на него
0
Вирусоборец
 Аватар для thyrex
14450 / 7489 / 1582
Регистрация: 06.09.2009
Сообщений: 27,133
03.12.2023, 21:14
Своё решение можете легко проверить на acmp. Задача оттуда.

Добавлено через 42 секунды
Я её когда-то сдал ещё на Паскале.

Добавлено через 4 минуты
Да и не просто так ведь указаны стоимости разных вариантов
1
2 / 2 / 0
Регистрация: 02.12.2023
Сообщений: 80
03.12.2023, 21:18  [ТС]
Royal_X, не подходит почему-то
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6234 / 2943 / 1047
Регистрация: 01.06.2021
Сообщений: 10,939
03.12.2023, 21:27
Цитата Сообщение от thyrex Посмотреть сообщение
Да и не просто так ведь указаны стоимости разных вариантов
на самом деле, даже мой код с остатками, хоть прямо не использует стоимости, но косвенно их учитывает:
- именно стоимости говорят о том, как выставить приоритет
- именно стоимости говорят, что если остается даже не 12, а 10 или 11, то нужно брать связку

Добавлено через 6 минут
Цитата Сообщение от IlyaTop Посмотреть сообщение
не подходит почему-то
а не показывает на каком тесте не проходит?
0
Вирусоборец
 Аватар для thyrex
14450 / 7489 / 1582
Регистрация: 06.09.2009
Сообщений: 27,133
03.12.2023, 21:28
Royal_X, не забывайте, что есть ещё коробки )))
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6234 / 2943 / 1047
Регистрация: 01.06.2021
Сообщений: 10,939
03.12.2023, 21:30
Цитата Сообщение от thyrex Посмотреть сообщение
не забывайте, что есть ещё коробки )))
да, есть такое дело. Коробку нужно брать еще в некоторых случаях, когда даже осталось меньше 144
0
2 / 2 / 0
Регистрация: 02.12.2023
Сообщений: 80
03.12.2023, 21:30  [ТС]
Royal_X, на четвертом тесте не проходит
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6234 / 2943 / 1047
Регистрация: 01.06.2021
Сообщений: 10,939
03.12.2023, 21:36
Лучший ответ Сообщение было отмечено Royal_X как решение

Решение

IlyaTop, вроде, когда остается 134 - 144, то берем коробку

Добавлено через 3 минуты
IlyaTop, проверь это

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
n = int(input('N = '))
 
a = n // 144
t1 = n - a * 144
if t1 >= 134:
    a += 1
    b = 0
    c = 0
else:
    b = t1 // 12
    t2 = n - a * 144 - b * 12
    if t2 >= 10:
        b += 1
        c = 0
    else:
        c = t2
print(a, b, c)
0
2 / 2 / 0
Регистрация: 02.12.2023
Сообщений: 80
03.12.2023, 21:41  [ТС]
Royal_X, все верно, только не совсем понял, как это получилось
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6234 / 2943 / 1047
Регистрация: 01.06.2021
Сообщений: 10,939
03.12.2023, 21:44
Цитата Сообщение от IlyaTop Посмотреть сообщение
только не совсем понял, как это получилось
принцип в том, что
Цитата Сообщение от Royal_X Посмотреть сообщение
в меру возможности и необходимости нужно предпочесть коробки, потом связки и только потом отдельные пары
из-за того, что
Цитата Сообщение от Royal_X Посмотреть сообщение
одна пара стоит 10,5
одна пара из связки стоит 8,5
одна пара из коробки стоит 7,91(6)
но поскольку
Цитата Сообщение от Royal_X Посмотреть сообщение
можно покупать больше, чем нужно покупателю
пришлось внести некоторые корректировки
0
Вирусоборец
 Аватар для thyrex
14450 / 7489 / 1582
Регистрация: 06.09.2009
Сообщений: 27,133
03.12.2023, 22:13
Метод подбора - занятный метод. Предлагаете выкинуть из входных данных стоимость? Хотел бы я на Ваше решение посмотреть, если бы стоимость тоже менялась.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6234 / 2943 / 1047
Регистрация: 01.06.2021
Сообщений: 10,939
03.12.2023, 23:05
Цитата Сообщение от thyrex Посмотреть сообщение
Предлагаете выкинуть из входных данных стоимость?
Стоимости были учтены во время разработки алгоритма. Больше они не нужны.

Цитата Сообщение от thyrex Посмотреть сообщение
Метод подбора - занятный метод.
Какой подбор? Всё рассчитано математически.

Цитата Сообщение от thyrex Посмотреть сообщение
Хотел бы я на Ваше решение посмотреть, если бы стоимость тоже менялась.
Тогда это было бы другое решение

thyrex, если все же захотите, опубликуйте свой код, посмотрим на временную и пространственную сложность вашего алгоритма
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.12.2023, 23:05
Помогаю со студенческими работами здесь

Носки задача по программированию
Носки Имеется стол длины L . На столе разложено N носков так, что никакой носок не вылезает за границы стола. Далее имеется умный...

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

Решить сортировкой задачу про носки
Задача №1429. Носки Имеется стол длины L. На столе разложено N носков так, что никакой носок не вылезает за границы стола. Далее имеется...

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

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


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

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

Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru