5328. Поиски минимума

 

В ЛКШ переполох. Потерялся минимум. Ваша задача – найти его.

 

Вход. В первой строке задано число n (1 ≤ n ≤ 1000). Во второй строке заданы n целых чисел, каждое из которых по модулю не превышает 105.

 

Выход. Выведите наименьшее из заданных n чисел.

 

Пример входа

Пример выхода

4

5 8 -4 6

-4

 

 

РЕШЕНИЕ

циклы

 

Анализ алгоритма

Задачу можно решить как с использованием массива, так и без него. Минимальное значение будем хранить в переменной min. Изначально ей можно присвоить либо значение, равное бесконечности (например, число, большее или равное максимально возможному значению среди входных данных таким числом может быть 10⁵), либо просто первое из введённых чисел.

Далее последовательно обрабатываем все входные данные. Если текущее число меньше текущего значения переменной min, обновляем её, присваивая новое значение.

 

Пример

Рассмотрим, как изменяется значение переменной min в процессе обработки входной последовательности.

 

Реализация алгоритма

Читаем количество заданных чисел n.

 

scanf("%d",&n);

 

Инициализируем переменную min большим числом – в ней будет храниться искомый минимум.

 

min = 100000;

 

Последовательно обрабатываем все n чисел.

 

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

{

 

Читаем очередное значение val.

 

  scanf("%d",&val);

 

Если это значение меньше текущего значения переменной min, обновляем минимум.

 

  if (val < min) min = val;

}

 

Выводим найденный минимум.

 

printf("%d\n",min);

 

Реализация алгоритма – инициализация минимума

Читаем количество заданных чисел n.

 

scanf("%d",&n);

 

Читаем первое число и присваиваем его переменной min теперь она хранит текущее минимальное значение.

 

scanf("%d",&min);

 

Затем читаем оставшиеся n – 1 число.

 

for(i = 1; i < n; i++)

{

 

Читаем очередное значение val.

 

  scanf("%d",&val);

 

Если это значение меньше текущего значения переменной min, обновляем минимум.

 

  if (val < min) min = val;

}

 

Выводим искомый минимум.

 

printf("%d\n",min);

 

Реализация алгоритмаSTL

Читаем входные данные.

 

scanf("%d", &n);

v.resize(n);

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

  scanf("%d", &v[i]);

 

Вычисляем и выводим наименьший элемент.

 

res = *min_element(v.begin(), v.end());

printf("%d\n", res);

 

Java реализация – вычисление минимума на лету

 

import java.util.*;

 

public class Main

{

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    int n = con.nextInt();

    int min = Integer.MAX_VALUE;

 

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

    {

      int val = con.nextInt();

      if (val < min) min = val;

    }

 

    System.out.println(min);

    con.close();

  }

}

 

Java реализация – использование массива

 

import java.util.*;

 

public class Main

{

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    int n = con.nextInt();

    int m[] = new int[n];

   

    // Read data

    for(int i = 0; i < m.length; i++)

      m[i] = con.nextInt();

 

    // Find minimum in array

    int min = Integer.MAX_VALUE;

    for(int i = 0; i < m.length; i++)

      if (m[i] < min) min = m[i];

   

    // Print the minimum

    System.out.println(min);

    con.close();

  }

}

 

Python реализация с индексами элементов списка

 

import sys

 

Читаем входные данные.

 

n = int(input())

m = list(map(int,input().split()))

 

Инициализируем переменную min большим числом – в ней будет храниться искомый минимум.

 

min = sys.maxsize

 

Последовательно обрабатываем элементы списка m. В процессе перебора обновляем переменную min, сохраняя в ней наименьший элемент списка.

 

for i in range(n):

  if m[i] < min: min = m[i]

 

Выводим ответ.

 

print(min)

 

Python реализация

 

import sys

 

Читаем входные данные.

 

n = int(input())

m = list(map(int,input().split()))

 

Инициализируем переменную min большим числом – в ней будет храниться искомый минимум.

 

min = sys.maxsize

 

Последовательно обрабатываем элементы списка m. В процессе перебора обновляем переменную min, сохраняя в ней наименьший элемент списка.

 

for v in m:

  if v < min: min = v

 

Выводим ответ.

 

print(min)

 

Python реализация – функция min

Читаем входные данные.

 

n = int(input())

m = list(map(int,input().split()))

 

Функция min возвращает минимальный элемент в списке. Выводим ответ.

 

print(min(m))