![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 22.04.2013
Сообщений: 25
|
![]()
Ученики физико-математического класса любят шутить. Ярик начал коллекционировать юмор своих одноклассников. После нескольких дней кропотливой работы шуток оказалось слишком много, поэтому находчивый Ярик решил систематизировать свою коллекцию.
Каждую из N шуток Ярик оценил по K различным параметрам, таким как <<оригинальность>>, <<остроумность>>, <<классность>> и др. Ярик хочет отсортировать шутки от самой лучшей к самой плохой. Шутка $X$ хуже шутки Y, если первый параметр шутки X меньше первого параметра шутки Y. Если эти параметры равны, то Ярик сравнивает вторые параметры, и т. д. Таким образом, при равенстве i-ых параметров нужно сравнивать (i + 1)-ые параметры, и т. д. Так как Ярик слишком увлечён игрой в DotA, сортировать его шутки придётся вам. \InputFile В первой строке введены два целых числа $N$ и $K$ ($1 \le K \le 13$), разделённых пробелом --- количество шуток в коллекции Ярика и количество параметров, по которым Ярик оценил каждую шутку. В следующих N строках описываются шутки. В i-ой строке введено K целых чисел , разделённых пробелом --- параметры i-ой шутки. Гарантируется, что никакие две шутки Ярик не оценил одинаково. \OutputFile Выведите N целых чисел через пробел --- номера шуток, отсортированных по выше указанным правилам. Требуется воспользоваться процедурой MergeSort. У меня проблемы при их сравнивании. Вот алгоритм действий В этой задаче пары шуток нельзя было сравнить обычным знаком <. Чтобы сравнить шутки, нужно было пройти циклом от 1 до K по параметрам, а затем сравнивать каждый параметр в отдельности. Как только соответствующие параметры у данных шуток не совпали, нужно прервать цикл. Пример. Ввод 2 3 1 2 3 1 2 4 Вывод 2 1 Пожалуйста,помогите мне. Я конечно поразбираюсь,но пора делать уроки,а олимпиада уже послезавтра. |
![]() |
![]() |
![]() |
#2 | ||
Made In USSR!
Старожил
Регистрация: 01.09.2010
Сообщений: 3,657
|
![]() Цитата:
Цитата:
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой" |
||
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 23.04.2013
Сообщений: 18
|
![]()
Шоб я так жил
![]() ![]() Но таким путём участвовать в олимпиадах по программирыванию точно не стоит!!! это конечно офтопик, да простит меня модератор |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 22.04.2013
Сообщений: 25
|
![]()
Нет)))
Я не играю в игры,подобные доте. Конкретно сейчас я учу биологию,мне отвечать. И это не задание олимпиады этой, оно с прошлого года. Все же спасибо заранее ![]() |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,374
|
![]()
Учитывая, что это прошедшая олимпиада (задание ведь уже известно) могу предложить простое решение:
1. Пишем ту часть, которая считывает исходные данные. 2. При считывании параметров шуток формируем строки и записываем в массив. 3. Полученный массив сортируем по убыванию. Строки можно просто сравнивать^ Код:
Как-то так ...
Как-то так, ...
|
![]() |
![]() |
![]() |
#6 | |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
![]() Цитата:
Виктор, отличная идея! Т.к. Length(m) будет равно Length(m-1) то сравнение пойдет по ASCII кодам.. а это нам на руку. (вот зараза.. плюс поставить не разрешает..). А для конспирации можно загнать это в процедуру под название Merge Sort ![]() |
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 23.04.2013
Сообщений: 18
|
![]()
Согласен, решение класс
![]() ![]() |
![]() |
![]() |
![]() |
#8 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
![]()
Навеяно решением Виктора, а если сделать все слегка попроще? Тоесть делать практически то, что предложил Виктор, НО с числами. У этого есть свои преимущества :
- Быстродействие - Это понятно даже на интуитивном уровне, нежели работа со строками (ИМХО) Но есть и недостатки : - Кол-во позиций для сравнения будет введено в жестокие рамки. И так мой вариант : Код:
Не проверял.. |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 22.04.2013
Сообщений: 25
|
![]()
Отличная идея,Виктор, напишу и отпишусь,как работает!
|
![]() |
![]() |
![]() |
#10 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
Цитата:
ни какое-либо другое ограничение (кроме общих ограничений языка целое <2**31) как вам такой пример Код:
![]()
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 26.04.2013 в 12:54. |
||
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обработка матрицы. Первую и вторую строки отсортировать выбором по убыванию, пятый и шестой столбец отсортировать (С++) | Sasha316 | Помощь студентам | 0 | 23.11.2012 00:48 |
отсортировать символы по убыванию частот | sacreden | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 5 | 25.02.2012 15:55 |
помогите отсортировать значения по параметрам | malenro84 | Microsoft Office Excel | 1 | 05.05.2009 23:59 |
Отсортировать массив по убыванию в С++ | sershok | Помощь студентам | 5 | 16.02.2009 00:31 |