Как найти три наименьших элемента массива

Вот накидал с достаточно подробными, для того чтобы разобраться самому, комментариями программу, которая работает без сортировки за линейное время. Идея в том, чтобы проходя однократно по массиву поддерживать акутальными текущие три минимальные числа, обновляя их с учетом каждого последующего элемента массива. Это решение легко расширяется на поиск любого фиксированного числа N минимальных элементов, не только трех.

P.S. Для ArrayList с алгоритмической точки зрения все делается точно так же. Я написал, как мне проще и быстрее, чтобы объяснить суть решения, а не конкретную техническую реализацию.

class Test {

  // Здесь будут храниться наши три минимальные числа.
  static int min[] = {Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE};

  // Обновляем массив `min` имея новое число-кандидат в минимум.
  static void updateMin(int x) {
    // Перебираем текущие минимальные числа.
    for (int i = 0; i < 3; ++i) {
      if (x < min[i]) {
        // Новое число меньше рассматриваемого из `min`.

        // Сдвигаем текущее и последующие числа, чтобы освободить место
        // для нового.
        for (int j = 2; j > i; --j)
          min[j] = min[j - 1];

        // Вставляем новое число на полагающееся ему место.
        min[i] = x;

        // Дело сделано.
        return;
      } else if (x == min[i]) {
        // Новое число равно рассматриваемому из `min`.

        // Заканчиваем, т.к. такое число уже есть среди минимальных.
        return;
      }

      // Иначе переходим к следующему числу из `min`
    }
  }

  public static void main(String[] args) {
    int loc[] = {25, 11, 250, 5, 45, 8, 10, 45, 31, 123, 489};

    // Находим три минимальных числа.
    for (int i = 0; i < loc.length; ++i)
      updateMin(loc[i]);

    // Выводим их
    // (проверка на MAX_VALUE на случай, если минимальных чисел окажется
    //  меньше трех).
    for (int i = 0; i < 3 && min[i] != Integer.MAX_VALUE; ++i)
      System.out.println(min[i]);
  }
}

0 / 0 / 0

Регистрация: 26.06.2021

Сообщений: 18

1

Найти три наименьших элемента массива и переставить их в начало

01.06.2022, 18:13. Показов 981. Ответов 13


Студворк — интернет-сервис помощи студентам

Напишите программу, которая находит три наименьших элемента массива и переставляет их в начало массива. Остальные элементы должны следовать далее в том же порядке.
Примеры
входные данные
6
7 2 1 5 3 8
выходные данные
1 2 3 7 5 8

Не могу понять, как решить эту задачу. Буду очень благодарен, если подскажете, как она решается.



0



JIupToH

32 / 20 / 13

Регистрация: 20.05.2022

Сообщений: 333

01.06.2022, 22:54

2

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
    vector <int> ivec{ 7, 2, 1, 5, 3, 8 };
    for (int i = 0; i < 3; i++)
    {
        int k = 1;
        int temp = ivec[i];
        for (int j = 1; j < ivec.size() - 1; j++)
        {
            if (ivec[j + 1] < temp)
            {
                temp = ivec[j + 1];
                k = j + 1;
            }
        }
        ivec.erase(ivec.begin() + k);
        ivec.insert(ivec.begin(), temp);
    }
    sort(ivec.begin(), ivec.begin() + 3);
    return 0;
}



0



0 / 0 / 0

Регистрация: 26.06.2021

Сообщений: 18

02.06.2022, 21:29

 [ТС]

3

Не работает ваш код.



0



32 / 20 / 13

Регистрация: 20.05.2022

Сообщений: 333

02.06.2022, 21:43

4

AlexPoronov, почему?



0



2340 / 1868 / 606

Регистрация: 29.06.2020

Сообщений: 7,056

02.06.2022, 21:50

5

Цитата
Сообщение от AlexPoronov
Посмотреть сообщение

Не работает ваш код.

Да, он кривоват, я делал, суть та же , но работает стабильно.



0



32 / 20 / 13

Регистрация: 20.05.2022

Сообщений: 333

02.06.2022, 21:52

6

СКриншот программы…

Найти три наименьших элемента массива и переставить их в начало



0



32 / 20 / 13

Регистрация: 20.05.2022

Сообщений: 333

02.06.2022, 21:55

7

SmallEvil, интересно, что именно кривовато…. Нет предела совершенства, просто это первое, что на ум пришло))

Добавлено через 2 минуты
SmallEvil, Как вариант, соглашусь, что тройку можно вынести как переменную, которую спрашивают у пользователь, мол сколько именно наименьших чисел можно вынести в начало.



0



SmallEvil

2340 / 1868 / 606

Регистрация: 29.06.2020

Сообщений: 7,056

02.06.2022, 22:01

8

Цитата
Сообщение от AlexPoronov
Посмотреть сообщение

Не работает ваш код.

Цитата
Сообщение от JIupToH
Посмотреть сообщение

почему?

вектор:

C++
1
vector <int> ivec{ 1, 2, 1, 5, 1, 8, 2, 1 };

вывод: 1 1 1 5 1 8 2 1

Видно что элементов ‘1’ стало 5, вместо 4,
одна двойка пропала

Добавлено через 1 минуту

Цитата
Сообщение от JIupToH
Посмотреть сообщение

SmallEvil, интересно, что именно кривовато…. Нет предела совершенства, просто это первое, что на ум пришло))
Добавлено через 2 минуты
SmallEvil, Как вариант, соглашусь, что тройку можно вынести как переменную, которую спрашивают у пользователь, мол сколько именно наименьших чисел можно вынести в начало.

С подходом все норм, я пытался придумать эффективнее, не вышло.
Только получилось что insert у меня один, в конце, а не N раз (где N – количество переставляемых наименьших элементов)



0



32 / 20 / 13

Регистрация: 20.05.2022

Сообщений: 333

02.06.2022, 22:27

9

SmallEvil, тогда повторяющиеся элементы надо удалять…. просто иначе странно будет, что 1 единицы в начале. А интересно, почему у меня так получилось…



0



1703 / 1103 / 337

Регистрация: 25.01.2019

Сообщений: 2,901

02.06.2022, 22:28

10

Цитата
Сообщение от JIupToH
Посмотреть сообщение

тогда повторяющиеся элементы надо удалять

С какого перепугу?



0



JIupToH

32 / 20 / 13

Регистрация: 20.05.2022

Сообщений: 333

02.06.2022, 22:41

11

SmallEvil, условие изменить надо, и тогда в начале будут единицы и двойка не затирается))

C++
1
if (ivec[j + 1] <= temp)



0



SmallEvil

2340 / 1868 / 606

Регистрация: 29.06.2020

Сообщений: 7,056

02.06.2022, 22:47

12

Лучший ответ Сообщение было отмечено AlexPoronov как решение

Решение

Цитата
Сообщение от JIupToH
Посмотреть сообщение

А интересно, почему у меня так получилось…

Не знаю, все эти +1 и -1 с индексами, часто выходят боком….

Решение в лоб.

Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
 
int main()
{
    const int k = 3; // три первых наименьших
    vector<int> arr{ 1, 2, 1, 5, 1, 8, 2, 1 };
    int index, min;
    vector<int> tmp;
    for(int i=0; i<k; ++i){
        auto it = min_element(arr.begin()+i, arr.end());
        min = *it;
        arr.erase(it);
        arr.insert(arr.begin()+i, min);
    }
    
    for(int i=0; i<arr.size(); ++i)
        cout << arr[i] << ' ';
    return 0;
}

Но что то мне это не нравится …

Добавлено через 3 минуты

Цитата
Сообщение от JIupToH
Посмотреть сообщение

условие изменить надо, и тогда в начале будут единицы и двойка не затирается))

ага, только потерался строй

Код

1 1 1 1 2 5 8 2

Но в задании не указано ничего про про выбор минимальных чисел …
Так что



1



32 / 20 / 13

Регистрация: 20.05.2022

Сообщений: 333

02.06.2022, 23:04

13

SmallEvil, так всмысле потерялся строй, если элемент наименьший то он идет в начало. все правильно)

Добавлено через 5 минут
Согласен, понял свою ошибку



0



2340 / 1868 / 606

Регистрация: 29.06.2020

Сообщений: 7,056

02.06.2022, 23:04

14

Цитата
Сообщение от SmallEvil
Посмотреть сообщение

Но что то мне это не нравится …

Итого, в широком смысле, где размер вектора может быть большим, так же как и N (наименьших элементов для обработки),
стоит выбор, либо в доп памяти, либо во времени исполнения, со всеми этими insert/erase…



0



Переделаем на Паскаль:
var Min1, Min2, Min3: Double
var n: Integer, A(32767): Double, i: Integer
‘ Запрашиваем размер массива
Readln(n);
‘ Формируем массив
for i := 1 To n do
Writeln (“Введите ” & i & “-ый член массива”);
Readln (A(i));
‘ Сначала ищем самое наименьшее число
Min1 := A(1);
for i := 2 To n do
If A(i) < Min1 Then Min1 := A(i);
‘ Теперь ищем второе наименьшее число, которое больше первого, но меньше всех остальных
Min2 := A(1)
for i := 2 To n do
If (A(i) < Min2) AND (A(i) > Min1) Then Min2 := A(i);
‘ А теперь третье, которое больше второго, но меньше всех остальных
Min3 := A(1)
for i := 2 To n do
If (A(i) < Min3) AND (A(i) > Min2) Then Min3 := A(i);
‘ И выводим все три числа
Writeln (Min1, Min2, Min3)
End

Дима почему-то пишет конкретное число в 10000000, но не учитывает, что числа могут быть все больше него, и тогда его код не сработает, потому что x(i) так и останется 10000000.

Improve Article

Save Article

Like Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    Like Article

    Find the first, second and third minimum elements in an array in O(n).

    Examples: 

    Input : 9 4 12 6
    Output : First min = 4
             Second min = 6
             Third min = 9
    
    Input : 4 9 1 32 12
    Output : First min = 1
             Second min = 4
             Third min = 9

    First approach : First we can use normal method that is sort the array and then print first, second and third element of the array. Time complexity of this solution is O(n Log n).

    C++

    #include<bits/stdc++.h>

    using namespace std;

    int Print3Smallest(int array[], int n)

    {

        sort(array,array+n);

        cout << "First min = " << array[0] << "n";

        cout << "Second min = " << array[1] << "n";

        cout << "Third min = " << array[2] << "n";

    }

    int main()

    {

        int array[] = {4, 9, 1, 32, 12};

        int n = sizeof(array) / sizeof(array[0]);

        Print3Smallest(array, n);

        return 0;

    }

    Java

    import java.util.Arrays;

    public class Main {

      static void Print3Smallest(int array[], int n) {

      Arrays.sort(array);

          System.out.println("First min = " + array[0]);

          System.out.println("Second min = " + array[1]);

          System.out.println("Third min = " + array[2]);

      }

      public static void main(String[] args) {

          int array[] = {4, 9, 1, 32, 12};

          int n = array.length;

          Print3Smallest(array, n);

      }

    }

    Python3

    def print_3_smallest(array):

        array.sort()

        print("First min =", array[0])

        print("Second min =", array[1])

        print("Third min =", array[2])

    if __name__ == '__main__':

        array = [4, 9, 1, 32, 12]

        n = len(array)

        print_3_smallest(array)

    C#

    using System;

    using System.Linq;

    class Program

    {

        static void Print3Smallest(int[] array, int n)

        {

            Array.Sort(array);

            Console.WriteLine("First min = " + array[0]);

            Console.WriteLine("Second min = " + array[1]);

            Console.WriteLine("Third min = " + array[2]);

        }

        static void Main()

        {

            int[] array = {4, 9, 1, 32, 12};

            int n = array.Length;

            Print3Smallest(array, n);

        }

    }

    Javascript

    function Print3Smallest(array,n){

        array.sort((a, b) => a - b);

        console.log('First min = ' + array[0]);

        console.log('Second min = ' + array[1]);

        console.log('Third min = ' + array[2]);

    }

    let array = [4, 9, 1, 32, 12];

    Print3Smallest(array,array.length);

    Output

    First min = 1
    Second min = 4
    Third min = 9

    Second approach : Time complexity of this solution is O(n).

    Algorithm:

    • First take an element
    • then if array[index] < Firstelement
      • Thirdelement = Secondelement
      • Secondelement = Firstelement
      • Firstelement = array[index]
    •      else if array[index] < Secondelement
      •   Thirdelement = Secondelement
      •  Secondelement = array[index]
    •      else if array[index] < Thirdelement
      • Thirdelement = array[index]
    • then print all the element 

    Implementation:

    C++

    #include<bits/stdc++.h>

    #define MAX 100000

    using namespace std;

    int Print3Smallest(int array[], int n)

    {

        int firstmin = MAX, secmin = MAX, thirdmin = MAX;

        for (int i = 0; i < n; i++)

        {

            if (array[i] < firstmin)

            {

                thirdmin = secmin;

                secmin = firstmin;

                firstmin = array[i];

            }

            else if (array[i] < secmin)

            {

                thirdmin = secmin;

                secmin = array[i];

            }

            else if (array[i] < thirdmin)

                thirdmin = array[i];

        }

        cout << "First min = " << firstmin << "n";

        cout << "Second min = " << secmin << "n";

        cout << "Third min = " << thirdmin << "n";

    }

    int main()

    {

        int array[] = {4, 9, 1, 32, 12};

        int n = sizeof(array) / sizeof(array[0]);

        Print3Smallest(array, n);

        return 0;

    }

    Java

    import java.util.*;

    public class GFG

    {

        static void Print3Smallest(int array[], int n)

        {

                int firstmin = Integer.MAX_VALUE;

                int secmin = Integer.MAX_VALUE;

                int thirdmin = Integer.MAX_VALUE;

                for (int i = 0; i < n; i++)

                {

                    if (array[i] < firstmin)

                    {

                        thirdmin = secmin;

                        secmin = firstmin;

                        firstmin = array[i];

                    }

                    else if (array[i] < secmin)

                    {

                        thirdmin = secmin;

                        secmin = array[i];

                    }

                    else if (array[i] < thirdmin)

                        thirdmin = array[i];

                }

                System.out.println("First min = " + firstmin );

                System.out.println("Second min = " + secmin );

                System.out.println("Third min = " + thirdmin );

        }

        public static void main(String[] args)

        {

                int array[] = {4, 9, 1, 32, 12};

                int n = array.length;

                Print3Smallest(array, n);

        }

    }

    Python3

    MAX = 100000

    def Print3Smallest(arr, n):

        firstmin = MAX

        secmin = MAX

        thirdmin = MAX

        for i in range(0, n):

            if arr[i] < firstmin:

                thirdmin = secmin

                secmin = firstmin

                firstmin = arr[i]

            elif arr[i] < secmin:

                thirdmin = secmin

                secmin = arr[i]

            elif arr[i] < thirdmin:

                thirdmin = arr[i]

        print("First min = ", firstmin)

        print("Second min = ", secmin)

        print("Third min = ", thirdmin)

    arr = [4, 9, 1, 32, 12]

    n = len(arr)

    Print3Smallest(arr, n)

    C#

    using System;

    class GFG

    {

    static void Print3Smallest(int []array, int n)

        {

                int firstmin = int.MaxValue;

                int secmin = int.MaxValue;

                int thirdmin = int.MaxValue;

                for (int i = 0; i < n; i++)

                {

                    if (array[i] < firstmin)

                    {

                        thirdmin = secmin;

                        secmin = firstmin;

                        firstmin = array[i];

                    }

                    else if (array[i] < secmin)

                    {

                        thirdmin = secmin;

                        secmin = array[i];

                    }

                    else if (array[i] < thirdmin)

                        thirdmin = array[i];

                }

                Console.WriteLine("First min = " + firstmin );

                Console.WriteLine("Second min = " + secmin );

                Console.WriteLine("Third min = " + thirdmin );

        }

        static void Main()

        {

        int []array = new int[]{4, 9, 1, 32, 12};

        int n = array.Length;

        Print3Smallest(array, n);

        }

    }

    PHP

    <?php

    function Print3Smallest($array, $n)

    {

        $MAX = 100000;

        $firstmin = $MAX;

        $secmin = $MAX;

        $thirdmin = $MAX;

        for ($i = 0; $i < $n; $i++)

        {

            if ($array[$i] < $firstmin)

            {

                $thirdmin = $secmin;

                $secmin = $firstmin;

                $firstmin = $array[$i];

            }

            else if ($array[$i] < $secmin)

            {

                $thirdmin = $secmin;

                $secmin = $array[$i];

            }

            else if ($array[$i] < $thirdmin)

                $thirdmin = $array[$i];

        }

        echo "First min = ".$firstmin."n";

        echo "Second min = ".$secmin."n";

        echo "Third min = ".$thirdmin."n";

    }

        $array= array(4, 9, 1, 32, 12);

        $n = sizeof($array) / sizeof($array[0]);

        Print3Smallest($array, $n);

    ?>

    Javascript

    <script>

    let MAX = 100000

    function Print3Smallest( array,  n)

    {

        let firstmin = MAX, secmin = MAX, thirdmin = MAX;

        for (let i = 0; i < n; i++)

        {

            if (array[i] < firstmin)

            {

                thirdmin = secmin;

                secmin = firstmin;

                firstmin = array[i];

            }

            else if (array[i] < secmin)

            {

                thirdmin = secmin;

                secmin = array[i];

            }

            else if (array[i] < thirdmin)

                thirdmin = array[i];

        }

        document.write("First min = " + firstmin + "</br>");

        document.write("Second min = " + secmin + "</br>");

        document.write("Third min = " + thirdmin + "</br>");

    }

        let array = [4, 9, 1, 32, 12];

        let n = array.length;

        Print3Smallest(array, n);

    </script>

    Output

    First min = 1
    Second min = 4
    Third min = 9

    Time Complexity: O(n)
    Auxiliary Space: O(1)

    Last Updated :
    09 Mar, 2023

    Like Article

    Save Article

    Найти первый, второй и третий минимальные элементы в массиве

    30.12.2019Массивы, Поиск, Школьное программирование

    Найти первый, второй и третий минимальные элементы в массиве в O (n).

    Примеры:

    Input : 9 4 12 6
    Output : First min = 4
             Second min = 6
             Third min = 9
    
    Input : 4 9 1 32 12
    Output : First min = 1
             Second min = 4
             Third min = 9
    

    Первый подход : сначала мы можем использовать обычный метод, который сортирует массив, а затем печатать первый, второй и третий элемент массива. Временная сложность этого решения составляет O (n Log n).

    Второй подход : временная сложность этого решения O (n).

    Алгоритм-

    First take an element
    then if array[index] < Firstelement
            Thirdelement = Secondelement
            Secondelement = Firstelement
            Firstelement = array[index]
         else if array[index] < Secondelement
            Thirdelement = Secondelement
            Secondelement = array[index]
         else if array[index] < Thirdelement
            Thirdelement = array[index]
    
    then print all the element 
    

    C ++

    #include<iostream>
    #define MAX 100000

    using namespace std;

    int Print3Smallest(int array[], int n)

    {

        int firstmin = MAX, secmin = MAX, thirdmin = MAX;

        for (int i = 0; i < n; i++)

        {

            if (array[i] < firstmin)

            {

                thirdmin = secmin;

                secmin = firstmin;

                firstmin = array[i];

            }

            else if (array[i] < secmin)

            {

                thirdmin = secmin;

                secmin = array[i];

            }

            else if (array[i] < thirdmin)

                thirdmin = array[i];

        }

        cout << "First min = " << firstmin << "n";

        cout << "Second min = " << secmin << "n";

        cout << "Third min = " << thirdmin << "n";

    }

    int main()

    {

        int array[] = {4, 9, 1, 32, 12};

        int n = sizeof(array) / sizeof(array[0]);

        Print3Smallest(array, n);

        return 0;

    }

    Джава

    import java.util.*;

    public class GFG

    {

        static void Print3Smallest(int array[], int n)

        {

                int firstmin = Integer.MAX_VALUE;

                int secmin = Integer.MAX_VALUE; 

                int thirdmin = Integer.MAX_VALUE;

                for (int i = 0; i < n; i++)

                {

                    if (array[i] < firstmin)

                    {

                        thirdmin = secmin;

                        secmin = firstmin;

                        firstmin = array[i];

                    }

                    else if (array[i] < secmin)

                    {

                        thirdmin = secmin;

                        secmin = array[i];

                    }

                    else if (array[i] < thirdmin)

                        thirdmin = array[i];

                }

                System.out.println("First min = " + firstmin );

                System.out.println("Second min = " + secmin );

                System.out.println("Third min = " + thirdmin );

        }

        public static void main(String[] args)

        {

                int array[] = {4, 9, 1, 32, 12};

                int n = array.length;

                Print3Smallest(array, n);

        }

          
    }

    python3

    MAX = 100000

    def Print3Smallest(arr, n):

        firstmin = MAX

        secmin = MAX

        thirdmin = MAX

        for i in range(0, n):

            if arr[i] < firstmin:

                thirdmin = secmin

                secmin = firstmin

                firstmin = arr[i]

            elif arr[i] < secmin:

                thirdmin = secmin

                secmin = arr[i]

            elif arr[i] < thirdmin:

                thirdmin = arr[i]

        print("First min = ", firstmin)

        print("Second min = ", secmin)

        print("Third min = ", thirdmin)

    arr = [4, 9, 1, 32, 12]

    n = len(arr)

    Print3Smallest(arr, n)

    C #

    using System;

    class GFG

    {

    static void Print3Smallest(int []array, int n)

        {

                int firstmin = int.MaxValue;

                int secmin = int.MaxValue; 

                int thirdmin = int.MaxValue;

                for (int i = 0; i < n; i++)

                {

                    if (array[i] < firstmin)

                    {

                        thirdmin = secmin;

                        secmin = firstmin;

                        firstmin = array[i];

                    }

                    else if (array[i] < secmin)

                    {

                        thirdmin = secmin;

                        secmin = array[i];

                    }

                    else if (array[i] < thirdmin)

                        thirdmin = array[i];

                }

                Console.WriteLine("First min = " + firstmin );

                Console.WriteLine("Second min = " + secmin );

                Console.WriteLine("Third min = " + thirdmin );

        }

        static void Main()

        {

        int []array = new int[]{4, 9, 1, 32, 12};

        int n = array.Length;

        Print3Smallest(array, n);

        }

    }

    PHP

    <?php

    function Print3Smallest($array, $n)

    {

        $MAX = 100000;

        $firstmin = $MAX;

        $secmin = $MAX;

        $thirdmin = $MAX;

        for ($i = 0; $i < $n; $i++)

        {

            if ($array[$i] < $firstmin)

            {

                $thirdmin = $secmin;

                $secmin = $firstmin;

                $firstmin = $array[$i];

            }

            else if ($array[$i] < $secmin)

            {

                $thirdmin = $secmin;

                $secmin = $array[$i];

            }

            else if ($array[$i] < $thirdmin)

                $thirdmin = $array[$i];

        }

        echo "First min = ".$firstmin."n";

        echo "Second min = ".$secmin."n";

        echo "Third min = ".$thirdmin."n";

    }

        $array= array(4, 9, 1, 32, 12);

        $n = sizeof($array) / sizeof($array[0]);

        Print3Smallest($array, $n);

      

    ?>

    Выход:

    First min = 1
    Second min = 4
    Third min = 9
    

    Рекомендуемые посты:

    • Найдите минимальное значение, чтобы назначить все элементы массива, чтобы произведение массива стало больше
    • Найти минимальные изменения, необходимые в массиве, чтобы он содержал k различных элементов
    • Рекурсивные программы для поиска минимальных и максимальных элементов массива
    • Найдите минимальное количество элементов, которые должны быть удалены, чтобы сделать массив хорошим
    • Найти минимальное количество операций, необходимых для выравнивания всех элементов массива
    • Отразите минимальные знаки элементов массива, чтобы получить минимально возможную сумму положительных элементов
    • Найти исходный массив из зашифрованного массива (массив сумм других элементов)
    • Найти элементы больше, чем половина элементов в массиве
    • Сумма всех минимально встречающихся элементов в массиве
    • Минимальное значение среди AND элементов каждого подмножества массива
    • Удалите минимальные элементы из массива так, чтобы max <= 2 * min
    • Удалите минимальные элементы из массива, так что 2 * min станет больше, чем max
    • Найти минимальную разницу между любыми двумя элементами
    • Найти минимальные элементы после рассмотрения всех возможных преобразований
    • Найдите минимальную сумму, такую, чтобы был взят один из каждых трех последовательных элементов

    Найти первый, второй и третий минимальные элементы в массиве

    0.00 (0%) 0 votes

    Добавить комментарий