В массиве записаны результаты очки 20 команд. Определить команды, занявшие 1 и 3 места без 2го прохода по массиву

В массиве записаны результаты очки 20 команд. Определить команды, занявшие 1 и 3 места без 2го прохода по массиву
не могу составить графическое и словесное представление алгоритма.. помогите, пожалуйста!

  • Что-то такое.. .
    ************************************************
    static void Main(string[] args)
    {
    int[] result = new int[20];
    for (int i = 5; i<20; i++) //Инициализируем массив
    {
    result = i;
    }

    int own = result[0];
    int two = result[0];

    foreach (int value in result)
    {
    if (value == 6) own = value; //Кто набрал 6 очков?
    if (value == 9) two = value; //Кто набрал 9 очков?
    }
    }
    **************************************************

  • Завести три переменные t1, t2, t3. Расположить в них (по возрастанию) три первые элемента массива. Ну, и начиная с четвертого элемента до конца:
    ЦИКЛ
    ЕСЛИ элемент больше t1, то t3 = t2, t2 = t1, а в t1 = этот элемент
    ИНАЧЕ
    ЕСЛИ элемент больше t2, то t3 = t2 и t2 = элемент
    ИНАЧЕ
    ЕСЛИ элемент больше t3, то t3 = элемент.

    А если нужны номера (по индексу в массиве) , то запоминать не значения, а индексы.

    Источник: По окончанию цикла нужное будет в t1 и t3.