|
0 / 0 / 0
Регистрация: 14.12.2015
Сообщений: 64
|
|
Решение задачи по раздаче карт с числами25.07.2016, 08:11. Показов 8510. Ответов 23
Метки нет (Все метки)
В колоде карт есть n карт (n — чётное число). На каждой карте написано целое положительное число. В новую карточную игру будут играть n / 2 человек. Каждому из игроков перед началом игры будет роздано ровно по две карты, причём каждая карта из колоды будет роздана ровно одному игроку.
Перед вами стоит задача найти такой способ раздачи карт, чтобы у каждого из игроков сумма чисел, написанных на полученных им картах, совпадала. Гарантируется, что входные данные таковы, что это всегда возможно. Входные данные В первой строке входных данных записано целое положительное число n (2 ≤ n ≤ 100) — количество карт. Гарантируется, что n чётно. Во второй строке следует последовательность из n целых положительных чисел a1, a2, ..., an (1 ≤ ai ≤ 100), где ai равно числу, написанному на i-й карте Выходные данные Выведите n / 2 пар целых чисел, по одной паре в строке — номера карт, которые нужно отдать каждому игроку. Каждая карта должна быть роздана ровно одному игроку. Карты нумеруются в том же порядке, в котором описываются во входных данных, начиная с единицы. Гарантируется, что входные данные таковы, что ответ всегда существует. Если возможных правильных ответов несколько, разрешается вывести любой из них.
0
|
|
| 25.07.2016, 08:11 | |
|
Ответы с готовыми решениями:
23
Решение задачи с квадратными числами
Из колоды карт (36 карт) наудачу берут пять карт |
|
0 / 0 / 0
Регистрация: 14.12.2015
Сообщений: 64
|
||||||
| 25.07.2016, 08:17 [ТС] | ||||||
|
Мой код:
0
|
||||||
|
[Bicycle Reinventor]
|
||||||
| 25.07.2016, 10:22 | ||||||
|
Решение, мягко говоря, неверное.
Во-первых, в условии сказано, что числа на картах подаются на вход программе во второй строке (все сразу), а вы считываете их построчно. Во-вторых, ваша проверка и поиск пары нарушает ещё одно условие задачи: каждая карта может быть выдана только одному игроку. O(n2) решение:
1
|
||||||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||||||
| 25.07.2016, 12:18 | ||||||
|
O(2n):
1
|
||||||
| 25.07.2016, 21:46 | |
|
Ээээ.... Тут вашу задачку в другом разделе выложили, поэтому и вышел на эту тему. Смотрю, у вас тут все круто - словари, вложенные циклы... Я то по-простому решил, не так круто как вы, в одну строчку: индексируем, сортируем по значению карт с сохранением индексов и набираем пары индексов с краев
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||||
| 26.07.2016, 09:45 | ||||
![]() Интерес-то в этих задачках — не просто решить (их любая обезьяна решит), а подобрать наиболее оптимальный алгоритм ![]() Exerion, единственная математика там — это нахождение требуемой суммы карт через минимальное и максимальное значение, что является откровенной тупостью (хоть и работает). Варианты выше (ваш и ТС) с обычным делением на количество игроков — намного лучше и красивее.
0
|
||||
|
0 / 0 / 0
Регистрация: 14.12.2015
Сообщений: 64
|
|
| 26.07.2016, 16:57 [ТС] | |
|
Exerion, Да, мой код не совершенен ,так как имею мало опыта в C# . За решение спасибо тебе и всем кто отписался . Задачу решил на C++
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 26.07.2016, 17:02 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 14.12.2015
Сообщений: 64
|
||||||
| 26.07.2016, 17:05 [ТС] | ||||||
0
|
||||||
| 26.07.2016, 18:30 | ||||||||
2
|
||||||||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 26.07.2016, 18:33 | |
|
_Ivana, Хаскель — он такой, да.
К сожалению, с языком не настолько знаком, чтобы что-то сказать об эффективности используемого алгоритма. Но выглядит красиво!
0
|
|
| 26.07.2016, 18:40 | ||
|
kolorotur, алгоритм я же описал в паре строк выше:
) - получаем сортированные достоинства карт с сохранением их первоначальных индексов. Если доступ к любому элементу контейнера за О(1) - то просто берем 2 указателя (индекса) - на начало и на конец - выводим соответствующие им индексы карт (вторые элементы пар), потом начальный указатель увеличиваем а конечный уменьшаем и снова выводим, пока начальный меньше конечного. Это я совсем в мелочах расписал алгоритм.
0
|
||
|
50 / 37 / 9
Регистрация: 25.06.2014
Сообщений: 406
|
||||||
| 26.07.2016, 19:59 | ||||||
|
Код на C# по алгоритму, который написал _Ivana.
0
|
||||||
|
0 / 0 / 0
Регистрация: 14.12.2015
Сообщений: 64
|
|
| 26.07.2016, 20:28 [ТС] | |
|
SashaPl, Код не компилируется
0
|
|
|
50 / 37 / 9
Регистрация: 25.06.2014
Сообщений: 406
|
|
| 26.07.2016, 20:32 | |
|
netrox,
подлючи System.Linq.
0
|
|
|
0 / 0 / 0
Регистрация: 14.12.2015
Сообщений: 64
|
|
| 26.07.2016, 21:15 [ТС] | |
|
SashaPl, Подключал
0
|
|
|
50 / 37 / 9
Регистрация: 25.06.2014
Сообщений: 406
|
|
| 26.07.2016, 21:19 | |
|
netrox, а, ну это в 6-ом шарпе так можно. Можешь использовать string.Format вместо этого.
0
|
|
|
0 / 0 / 0
Регистрация: 14.12.2015
Сообщений: 64
|
|
| 26.07.2016, 22:34 [ТС] | |
|
SashaPl, А для 6-ого шарпа нужна visual 2015 или на старых тоже пойдёт ?
0
|
|
|
50 / 37 / 9
Регистрация: 25.06.2014
Сообщений: 406
|
|
| 27.07.2016, 02:29 | |
|
netrox, нужна 2015. Вместо этого можно использовать string.Format.
0
|
|
| 27.07.2016, 02:29 | |
|
Помогаю со студенческими работами здесь
20
Найти решение уравнения, изоклинную и интегральную кривые, решение задачи Коши Аналитическое решение решение краевой задачи для ОДУ второго порядка задачи с двумерным массивом, решение должно быть похоже на решение 8-ми классника Найдите общее решение и решение задачи Коши для ОДУ Найти общее решение или решение задачи Коши Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|