Как перебирать кортежи в c++?

Можете объяснить как перебирать кортежи в языке c++? Мне необходимо создать кортеж из 6 элементов и, в зависимости от условия, добавлять или заменять элемент в кортеже. В конце вывести все элементы. Задание 1. Кортежи

Соревнования по игре «Тетрис-онлайн» проводятся по следующим правилам. Каждый участник регистрируется на сайте игры под определённым игровым именем. Имена участников не повторяются. Чемпионат проводится в течение определённого времени. В любой момент этого времени любой зарегистрированный участник может зайти на сайт чемпионата и начать зачётную игру. По окончании игры её результат (количество набранных очков) фиксируется и заносится в протокол. Участники имеют право играть несколько раз. Количество попыток одного участника не ограничивается. Окончательный результат участника определяется по одной игре, лучшей для данного участника. Более высокое место в соревнованиях занимает участник, показавший лучший результат. При равенстве результатов более высокое место занимает участник, раньше показавший лучший результат. В ходе соревнований заполняется протокол, каждая строка которого описывает одну игру и содержит результат участника и его игровое имя. Протокол формируется в реальном времени по ходу проведения чемпионата, поэтому строки в нём расположены в порядке проведения игр: чем раньше встречается строка в протоколе, тем раньше закончилась соответствующая этой строке игра. Напишите эффективную, в том числе по памяти, программу, которая по данным протокола определяет победителя и призёров. Гарантируется, что в чемпионате участвует не менее трёх игроков. Перед текстом программы кратко опишите алгоритм решения задачи и укажите используемый язык программирования и его версию.

Описание входных данных Первая строка содержит число N- общее количество строк протокола. Каждая из следующих N строк содержит записанные через пробел результат участника (целое неотрицательное число, не превышающее 100 миллионов) и игровое имя (имя не может содержать пробелов). Строки исходных данных соответствуют строкам протокола и расположены в том же порядке, что и в протоколе. Гарантируется, что количество участников соревнований не меньше 3.

Описание выходных данных Программа должна вывести имена и результаты трёх лучших игроков по форме, приведённой ниже в примере.

Пример входных данных: 9 69485 Jack 95715 qwerty 95715 Alex 83647 M 197128 qwerty 95715 Jack 93289 Alex 95715 Alex 95715 M

Пример выходных данных для приведённого выше примера входных данных: 1 место. qwerty (197128) 2 место. Alex (95715) 3 место. Jack (95715)

Со своими скудными знаниями, я смог додуматься только до этого.

#include <iostream>
#include <string>
#include <tuple>
using namespace std;
int main()
{
    setlocale(LC_ALL, "RU");
    int N, i, score;
    string username;
    tuple<int, string, int, string, int, string> t(0, "name", 0, "name", 0, "name");
    cout << "Введите количество строк --> ";
    cin >> N;
    for (i = 0; i < N; i++)
    {
        cin >> score >> username;
        if (score > get<0>(t))
        {
            if (get<1>(t) != username)
            {
                if ((get<0>(t) > get<2>(t)))
                {
                    get<2>(t) = get<0>(t);
                    get<3>(t) = get<1>(t);
                }
                else if ((get<0>(t) > get<4>(t)) && (get<1>(t) != get<3>(t)))
                {
                    get<4>(t) = get<0>(t);
                    get<5>(t) = get<1>(t);
                }
            }
            get<0>(t) = score;
            get<1>(t) = username;
        }
        else if (get<1>(t) != username)
        {
            if (score > get<2>(t))
            {
                if ((get<2>(t) > get<4>(t)) && (get<3>(t) != get<1>(t)))
                {
                    get<4>(t) = get<2>(t);
                    get<5>(t) = get<3>(t);
                }
                get<2>(t) = score;
                get<3>(t) = username;
            }
            else if ((score > get<4>(t)) && (username != get<3>(t)))
            {
                get<4>(t) = score;
                get<5>(t) = username;
            }
        }
    }
    cout << "1 место. " << get<1>(t) << " (" << get<0>(t) << ")" << endl;
    cout << "2 место. " << get<3>(t) << " (" << get<2>(t) << ")" << endl;
    cout << "3 место. " << get<5>(t) << " (" << get<4>(t) << ")" << endl;
    return 0;
}

Ответы (0 шт):