Найти - Пользователи
Полная версия: "Голодные Окуни" или Помогите добить задачку!
Начало » Python для новичков » "Голодные Окуни" или Помогите добить задачку!
1 2 3 4 5
Ferroman
Какие удобные примеры. Правда, не все решены верно.
N=18, M=3, result = 18/(3+1)=4
Первый шаг - 9 съели других 9 - осталось 9
Второй шаг - 4 съели 4-х, один остался голодным - сталось 4 (съели по 2)+1(съел только 1-го) =5
Третий - 2 сьели 2-х и насытились. Один таки остался голодным.
Ответ = 2 (наибольшее количество окуней которое может насытиться) а не 4-ре.
pasaranax
Вывод: нужно более четкое описание задачи.
FILLIPO
pasaranax
Вывод: нужно более четкое описание задачи.
Каюсь. Даже исходный текст задачи ясности не вносит. (текст из PDF документа - исходника)
Задача полностью:
Задача C. Голодные окуни

Имя входного файла: fish.in
Имя выходного файла: fish.out
Ограничение по времени: 1 секунда
Ограничение по памяти: 64 мегабайта

В пруд запустили N голодных окуней, которые стали постепен-
но поедать друг друга. Окунь считается сытым, если он съел M
окуней (сытых или голодных). Какое наибольшее количество
окуней может насытиться?

Формат входного файла
В первой строке записаны два натуральных числа N иM. Каж-
дое из чисел не превосходит 1000.

Формат выходного файла
Выведите одно неотрицательное целое число количество на-
сытившихся окуней.

Примеры
fish.in fish.out
2 1 1
11 3 3
В любом случае, свое решение считаю верным.
Всем большое спасибо.
:)
sypper-pit
покажи код последнего решения
o7412369815963
FILLIPO
Даже исходный текст задачи ясности не вносит.
но кое-что прояснилось, в результате ответ = (N-1)/M
сравни со своими результатами
Ferroman
o7412369815963
Ответ снова не верный.

N=18, M=3, result = (18-1)/3 == 5.6

А должно быть 2.
Попробуйте нарисовать график.
o7412369815963
Ferroman
Ответ снова не верный
вы не правильно поняли задачу.
посчитайте по вашему сколько будет N = 11, M = 3
по моей формуле = (11-1)/3 = 3
ЗЫ: / - деление нацело ( например как в С++ деление целых числел ), к этому не придирайтесь
Ferroman
А как это вы считаете? Как по-вашему надо понимать задачу?

1 заход. Из 11 окуней 5-ро съело ещё 5. Осталось 6 (1 голодный)
2 заход. Из 6 окуней 3 съело 3 других (будем считать, что 1-го голодного съели). Осталось 3 окуня, которые съели по 2.
3 заход (последний) Из 3 окуней 1 съедает другого. Итог - 1 сытый, - 1 голодный (съел только 2-х)
Ответ - 1

Вообще-то ответ очень простой и считается математической формулой, которую легко получить из итераций. Если интересно - напишу как.
o7412369815963
Ferroman
Ответ - 1
этим вы подтвердили то, что ваше решение не верное.
см. семплы из задачи:
FILLIPO
Примеры
fish.in fish.out
2 1 1
11 3 3
Ferroman
Я выходил из того, что за единицу времени каждый окунь съедает другого (по возможности). Что вкладывали создатели задачи в слова “постепенно поедают друг друга” мне не известно. Если разговор о том сколько вообще окуней может насытится (без учёта времени), то решение не просто тривиально - оно примитивно.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB