| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > помогите, пожалуйста найти ошибку |
| Автор: Тавасилек 28.5.2016, 17:43 | ||
| Здравствуйте, помогите, пожалуйста. Есть задача: Есть N станков и 2 работы. Каждая работа состоит из Si этапов. Этап характеризуется парой (n, t) чисел, где n — номер станка, а t — продолжительность этапа. Для каждой работы порядок этапов строго задан. Любой этап можно приостановить в любой момент и позже продолжить с того же момента. В каждый момент времени любая работа может выполняться только на одном станке и любой станок может выполнять только одну работу. Необходимо составить такое расписание, чтобы все работы были выполнены за минимальное время. Формат входного файла В первой строке содержится единственное число N. В следующих двух строках на первом месте записано число Si, а за ним — Si пар (n, t) через пробел. И мое решение:
Суть в том, что на некоторых входных данных выдает неправильный ответ( Хотя и редко). Например при входе: 4 3 1 1 3 3 2 1 4 1 1 2 3 4 1 3 1 выдает ответ 5, хотя мин время работы 6 не могу найти, где ошибка в алгоритме, помогите пожалуйста |
| Автор: Tieswar 29.5.2016, 14:33 |
| У меня на этот ввод выдаёт 3. Вы бы добавили комментариев к коду. Чтобы хотя бы общие черты логики были видны сразу, без погружения в код. |
| Автор: Tieswar 29.5.2016, 15:01 | ||||
Немного подредактировал ваш код.
Похоже, просто всегда срабатывает условие в функции рассчёта времени
|