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

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

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

> победитель
passat
сообщение 17.03.2009 10:14
Сообщение #1


Новичок
*

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

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


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

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

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

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

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


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

 



- Текстовая версия 21.06.2025 13:03
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"