![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
1qsd |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Мужской Реальное имя: Kost Репутация: ![]() ![]() ![]() |
Вот такая непонятная задача.
В очереди в кассу n человек (от 3 до 20). Про каждого известно, что 1) ему нужен один билет. 2) он должен купить билеты одного или двух стоящих за ним 3) дано время t1, t2, t2 покупки i-м очередником одного, двух или трех билетов. Подсчитать минимальное время обслуживания очереди. начало задачи есть (Ввод данных) Program Bk; а что делать дальше, не знаю... Помогите решить пожалуйста!! |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Надобно тестовые примеры, самому сочинять лень если честно, вот проверь это:
const тестировал на файле: Цитата('ticket.txt') 1 2 3 4 5 6 7 8 9 10 11 12 и Цитата('ticket.txt') 1 2 3 4 1 1 1 8 9 10 4 1 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
1qsd |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Мужской Реальное имя: Kost Репутация: ![]() ![]() ![]() |
на примерах работает
то есть первый покупает за троих (время = 3), а четвертый покупает сам за себя (время = 10) Цитата('ticket.txt') 1 2 3 4 5 6 7 8 9 10 11 12 ********************************* второй файл тоже работает: первый покупает за себя (время = 1) + второй покупет за троих (за себя третьего и четвертого, время = 1). Цитата('ticket.txt') 1 2 3 4 1 1 1 8 9 10 4 1 ********************************** а, например, если вводить массив 1 2 3 4 5 6 7 8 9 то выдает ответ 9, хотя должен 3 (то есть первый купил за всех троих, время = 3!!! ) еще пример: 1 2 3 4 1 6 7 8 9 4 5 1 выдает ответ 2. я так понял считалось так: первый покупает за себя (время = 1), а четвертый покупает за себя, третьего и второго (время = 1). А так считать нельзя. Четвертый может покупать только за себя; за себя и за пятого; за себя, пятого или шестого (разумеется, если бы они были). А правильный ответ в этой матрице должен быть: первый покупает за себя (время = 1), второй покупает за себя и за третьего (время = 1), четвертый покупает тоже за себя (время = 4). В сумме 6. |
klem4 |
![]()
Сообщение
#4
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Я считал какбы с конца, тоесть последний - это первый
Цитата еще пример: 1 2 3 4 1 6 7 8 9 4 5 1 выдает ответ 2. У последнего покупка трех билетов займет 1, ну и остается первый, который сам себе купит за единицу. -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
1qsd |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Мужской Реальное имя: Kost Репутация: ![]() ![]() ![]() |
а можно сделать так, что бы первая строчка - это первый, вторая - это второй покупатель и так далее...?
|
klem4 |
![]()
Сообщение
#6
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Можно конечно, а сам не хочешь подумать как это сделать ?
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
1qsd |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Мужской Реальное имя: Kost Репутация: ![]() ![]() ![]() |
Переделал код под себя, числа нужно вводить вручную, протестировал на всех примерах - вроде работает
program Bk; НО!!! если брать примеры типо: 1) 1 2 3 4 1 6 7 8 9 4 5 1 (считая первая строчка - первый очередник и т.д.) то программа вместо 1+1+4=6 считает 3+4=7!!! 2) 3 6 7 3 2 6 4 4 4 6 8 3 программа вместо 6(из первой строчки)+4(посередине из третьей строчки)=10, считает как 7(за первых трех)+6=13 почему-то серединные значения она не берет. Кстати, проверил еще программу в Сообщение #2, у нее такой же глюк... Сообщение отредактировано: 1qsd - 27.03.2007 1:55 |
klem4 |
![]()
Сообщение
#8
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Это не "глюк", просто алгоритм не верный.
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 13:49 |