Решение задачи по раздаче карт с числами - 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}");
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5
Похожие ответы