![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
archimed7592,
где вариант на С++? ![]() ![]() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
chipset, вот, можешь почитать Алёнкин конспект: http://alenacpp.blogspot.com/2007/02/blog-post_20.html .
Макс, ой, не сегодня... Не до этого, к сожалению. Может быть завтра руки дойдут. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: нет Всего: 110 |
вот небольшой набросок со стороны С++:
с сортировкой некрасиво получилось (копирование вектора), но на скорую руку, наверное, и так пойдёт да и расширяемость не очень будет, если количество категорий будет другое или переменное сравнивать, наверное, лучше на той же машине и системе, что и представленный C-шный вариант Это сообщение отредактировал(а) maxim1000 - 27.1.2008, 01:16 -------------------- qqq |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Чего-то я в итоге не понял - вы решили тестить реализацию на си и реализацию на C++ "без использования фич C++" ![]() Добавлено через 5 минут и 32 секунды Банально - сет или мультисет (в зависимости от условий задачи - лень особо читать :/ ) вместо вектора. |
|||
|
||||
maxim1000 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: нет Всего: 110 |
про set думал, но не хотелось объединять одинаковые значения в вот про multiset как-то не подумал... исправленный вариант:
-------------------- qqq |
||||
|
|||||
Void |
|
||||||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 11 Всего: 173 |
MAKCim, быть может я чего-то не понимаю, но твоя программа ТЗ не соответствует.
Даю на вход:
Получаю на выходе:
Во-первых, категории надо объединять, во-вторых, кто зохавал четвёртый элемент? Кроме того, если DELIMITER заменить на точку с запятой и соответственно изменить приведённые строки, то получится другой результат, но опять неправильный. Вот альтернативный скрипт генерации исходных данных, с немного более реальными характеристиками:
-------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
||||||
|
|||||||
MAKCim |
|
||||||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
господа
либо баг у меня, либо в libc -> fgets() вот часть кода рушится с SIGSEGV на 927 итерации факт в том, что на этой итерации fgets() не возвращает NULL (якобы строка прочитана) но при работе с pointer идет SIGSEGV я исхожу из того, что fgets() должна записать в выходной буфер в конце \n и \0 (во всяком случае так в мане написано) что не так? вполне возможно, что не прав я, но не пойму где
Добавлено через 4 минуты и 55 секунд
еще раз исходник скомпилируй
измени DELIMITER в исходном коде Добавлено через 8 минут и 8 секунд Void, у меня на выходе
Это сообщение отредактировал(а) MAKCim - 27.1.2008, 11:45 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||||||
|
|||||||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 11 Всего: 173 |
![]()
Я это и делал. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
Void,
вот код
на твой пример он выводит правильные результаты -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 11 Всего: 173 |
MAKCim, всё, понял. Проблема в gcc. С -O2 у меня результат неверный, с -O0 всё нормально.
Мда. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
O_O что за х.... -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
Оу, ребят, можете считать, что тройка cat;subcat;entry уникальна и, если она встречается дважды(или большее кол-во раз), то выводить её нужно единожды. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
maxim1000 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: нет Всего: 110 |
ну тогда так ![]()
-------------------- qqq |
||||
|
|||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
Эммм.. а когда будут результаты бенчмарков ?
![]() -------------------- ![]() |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
maxim1000, в таком случае у тебя сортировка при любом раскладе отрабатывает... Т.е. в тестах без сортировки твой вариант теоретически "сольёт"...
Когда появится время, чтобы затестить решения(ещё бы найти время, чтобы своё решение навоять)... ![]() -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
![]() ![]() ![]() |
Правила ведения Религиозных войн | |
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Религиозные войны | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |