|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.11.2014, 11:27 | #1 |
Новичок
Джуниор
Регистрация: 28.11.2014
Сообщений: 1
|
Трудности с сортировкой
Доброго времени суток. Есть такая интересная задача:
=================================== ========================== В финал олимпиады по программированию вышло n участников. Итоги олимпиады подводились по трем критериям: - скорость написания программ: за одно и то же время участники решили соответственно S[1], S[2], ..., S[n] задач; - скорость выполнения программ: на выполнение программ участников ушло соответственно T[1], T[2], ..., T[n] минут; - оригинальность: программы каждого участника получили соответственно M[1], M[2], ..., M[n] баллов. Считая, что для i-го участника известны S[i], T[i], M[i] распределить их по местам по следующим критериям: - участник, решивший больше задач занимает лучшее место; - при равном количестве решенных задач лучшее место занимает участник, чьи задачи выполняются быстрее; - при равных количестве решенных задач и скорости их выполнения лучшее место достается участнику с большим количеством баллов за оригинальность; - при одинаковом количестве баллов по каждому из критериев участники разделяют одно место и располагаются в одной строке по алфавиту. Входные данные Во входном текстовом файле с именем inp.dat заданы количество участников и имена участников и их результаты. В первой строке указано количество участников. В следующей, второй строке через пробелы задано имя первого участника и его результаты и т.д. Спецификация ввода <N> <Имя1> <S[1]> <T[1]> <M[1]> <Имя2> <S[2]> <T[2]> <M[2]> ... ... ... ... <Имяn> <S[n]> <T[n]> <M[n]> Выходные данные В выходной текстовый файл с именем out.dat в порядке занятых мест с новой строки вывести места (через тире) и имена участников, занявших данные места (по алфавиту через пробел). Спецификация вывода <места> <список имен> <места> <список имен> <места> <список имен> <места> <список имен> Пример: Inp.dat 5 Иванов 3 4 1 Петров 3 4 3 Сидоров 5 3 4 Кузнецов 5 2 1 Фролов 3 4 3 out.dat 1 Кузнецов 2 Сидоров 3-4 Петров Фролов 5 Иванов =================================== ========================== Реализовал ее частично на основе примера так: Код:
- при равном количестве решенных задач лучшее место занимает участник, чьи задачи выполняются быстрее; - при равных количестве решенных задач и скорости их выполнения лучшее место достается участнику с большим количеством баллов за оригинальность; - при одинаковом количестве баллов по каждому из критериев участники разделяют одно место и располагаются в одной строке по алфавиту." Уже несколько дней ломаю голову, помогите чем сможете, спасибо! |
28.11.2014, 11:50 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Делфийский пример простейшей сортировки массива записей по нескольким полям. Приспосабливай
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 28.11.2014 в 11:53. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Трудности c JPanel | Aerowalk | Общие вопросы по Java, Java SE, Kotlin | 1 | 20.09.2014 21:30 |
C# и Java трудности. | LaiQue | Общие вопросы .NET | 0 | 24.04.2010 15:50 |
Трудности перевода | Elidan | Общие вопросы C/C++ | 0 | 10.06.2009 01:49 |
Трудности с формулой | arr1val | Microsoft Office Excel | 1 | 15.08.2008 17:18 |
Трудности перевода | Maks1978 | Свободное общение | 6 | 30.05.2008 12:55 |