IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> победитель
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 32
Пол: Мужской

Репутация: -  0  +


В состязаниях участвуют N (N - до 100000) спортсменов. Каждому даются три попытки. Входной файл содержит 3 строки с положением участников в каждой попытке (ни в одной из попыток невозможно двум и более человекам разделить одно место).
Считается, что спортсмен A сильнее спортсмена B в случае, если A занял во всех попытках места выше, чем B. А является лучшим среди всех, если нет никого лучше его.
Найти и вывести в выходной файл количество лучших спортсменов.

Реализацию напишу сам, но подскажите алгоритм.
Пока просматривается следующее.
Поскольку раздел мест невозможен, то представляя лучшее и худшее место спортсмена во всех попытках как координаты отрезка, задача сводится к определению количества связных областей в начале координатной прямой.
Т.е. реализация в самом общем виде что-то типа такого:
- считать данные в массив, где каждому спортсмену отводится по 2 позиции: на первой лучшее место, на второй худшее место
- с первой позицией связываем +1, со второй - -1 (можно использовать либо пару массивов, либо один, но с несколько более сложной структурой элементов - в принципе, это сейчас не интересует)
- сортируем массив (второй - по результатам первого)
- осталось посчитать сумму первых +/-1 до получения первого нуля.
Количество +1 дает количество победителей.

Особо смущает факт, что сортировка должна быть стабильной. А это сразу увеличивает время, особенно на больших количествах. Это наталкивает на грустную мысль, что само решение неверное.

Подскажите, пожалуйста, правильный ли подход в принципе. Жаль тратить время на неправильное решение.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
passat   победитель   17.03.2009 14:14
maksimla   если я правильно понял по строчкам Считается, что…   17.03.2009 14:35
Lapp   Найти и вывести в выходной файл количество лучших …   17.03.2009 15:27
passat   Извиняюсь, но не вполне врубился в условие. Може…   17.03.2009 16:32
Lapp   Тот, что есть, не помогает: 1 2 3 2 3 1 3 1 2 От…   18.03.2009 8:09
TarasBer   По моему разумению, ответ к этим данным должен бы…   18.03.2009 19:37
Lapp   У Частично Упорядоченного Множества (а мы имеем де…   19.03.2009 7:20
passat   Если я правильно понял, что вы имеете в виду, то …   28.03.2009 0:17
TarasBer   Поняли, видимо, правильно. В Вашем примере Вы отб…   30.03.2009 3:36
passat   А ну и что? Первый спортсмен - один из лучших, пр…   1.04.2009 19:48
maksimla   мне тогда кажется надо все серавно слапить три рез…   18.03.2009 14:28
passat   Это было бы слишком просто. Непонятно, в чем смыс…   18.03.2009 16:25
Lapp   А прояснить условие негде?   18.03.2009 17:06
passat   К сожалению, нет. Давайте исходить из того, что пр…   18.03.2009 18:13
TarasBer   Лучший - это не тот, который лучше всех остальных.…   19.03.2009 17:05
volvo   В таком случае, зачем проводятся соревнования? Поп…   19.03.2009 17:38
TarasBer   В таком случае, зачем проводятся соревнования? По…   19.03.2009 17:48
Lapp   не верите, что он лучший - тогда назовите того, кт…   19.03.2009 18:12
TarasBer   O'kay, согласен. Возникла некоторая путаница…   19.03.2009 18:55
Archon   Интересная задачка, правда явно олимпиадная, поэто…   2.04.2009 12:30
passat   Другой пример Lapp'а. 3 4 2 1 2 3 4 1 1 2 4 3…   3.04.2009 21:39


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 26.04.2024 2:49
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name