Решение задачи по раздаче карт с числами - C#
Формулировка задачи:
В колоде карт есть n карт (n — чётное число). На каждой карте написано целое положительное число. В новую карточную игру будут играть n / 2 человек. Каждому из игроков перед началом игры будет роздано ровно по две карты, причём каждая карта из колоды будет роздана ровно одному игроку.
Перед вами стоит задача найти такой способ раздачи карт, чтобы у каждого из игроков сумма чисел, написанных на полученных им картах, совпадала. Гарантируется, что входные данные таковы, что это всегда возможно.
Входные данные
В первой строке входных данных записано целое положительное число n (2 ≤ n ≤ 100) — количество карт. Гарантируется, что n чётно. Во второй строке следует последовательность из n целых положительных чисел a1, a2, ..., an (1 ≤ ai ≤ 100), где ai равно числу, написанному на i-й картеВыходные данные
Выведите n / 2 пар целых чисел, по одной паре в строке — номера карт, которые нужно отдать каждому игроку. Каждая карта должна быть роздана ровно одному игроку. Карты нумеруются в том же порядке, в котором описываются во входных данных, начиная с единицы. Гарантируется, что входные данные таковы, что ответ всегда существует. Если возможных правильных ответов несколько, разрешается вывести любой из них.Решение задачи: «Решение задачи по раздаче карт с числами»
textual
Листинг программы
int count = int.Parse(Console.ReadLine()); var cards = Console.ReadLine().Split(' ') .Select((itm, indx) => new { item = itm, index = indx + 1 }) .OrderBy(o => o.item).ToArray(); for (int i = 0; i < count/2; i++) { Console.WriteLine($"{cards[i].index} {cards[count - 1 - i].index}"); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д