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

 

В ЛКШ переполох. Потерялся минимум. Вы должны его найти.

 

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

 

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

 

Пример входа

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

4

5 8 -4 6

-4

 

 

РЕШЕНИЕ

циклы

 

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

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

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

 

Пример

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

 

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

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

 

scanf("%d",&n);

 

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

 

min = 100000;

 

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

 

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

{

 

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

 

  scanf("%d",&val);

 

Если оно меньше min, то положим min = val.

 

  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++)

{

  scanf("%d",&val);

 

Если текущее число val меньше минимума, то обновляем его.

 

  if (val < min) min = val;

}

 

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

 

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

 

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))