1118. Арбузы

 

Иван Васильевич пришел на рынок и решил купить два арбуза: один для себя, а другой для тещи. Понятно, что для себя нужно выбрать арбуз потяжелей, а для тещи полегче. Но вот незадача: арбузов слишком много и он не знает, как же выбрать самый легкий и самый тяжелый арбуз. Помогите ему!

 

Вход. В первой строке задано количество арбузов n (n ≤ 30000). Вторая строка содержит n чисел, каждое из которых задает массу соответствующего арбуза. Все массы арбузов натуральные и не превышают 30000.

 

Выход. Вывести два числа: массу арбуза, который Иван Васильевич купит теще, и массу арбуза, который он купит себе, или вывести сообщение "Ooops!" (без кавычек), если кто-то останется без арбуза.

 

Пример входа

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

5

5 1 6 5 9

1 9

 

 

РЕШЕНИЕ

циклы

 

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

В последовательности из n чисел следует найти наименьшее и наибольшее число. Что можно сделать при помощи одного цикла. Если количество арбузов меньше 2, то следует вывести "Ooops!".

 

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

Если арбузов меньше 2, то кому-то его не достанется. Иначе в переменных mn и mx считаем наименьший и наибольший вес среди имеющихся арбузов.

 

scanf("%d",&n); mn = 1000000000; mx = 0;

if (n < 2) printf("Ooops!\n"); else

{

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

  {

    scanf("%d",&w);

    if (w < mn) mn = w;

    if (w > mx) mx = w;

  }

 

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

 

  printf("%d %d\n",mn,mx);

}

 

Реализация с исключением

 

#include <stdio.h>

 

int i, n, mn, mx, value;

 

int main(void)

{

  scanf("%d",&n); mn = 1000000000; mx = 0;

  try

  {

    if (n < 2) throw "Ooops!";

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

    {

      scanf("%d",&value);

      if (value < mn) mn = value;

      if (value > mx) mx = value;

    }

    printf("%d %d\n",mn,mx);

  }

  catch (const char* msg)

  {

    puts(msg);   

  }

  return 0;

}

 

Java реализация

 

import java.util.*;

 

public class Main

{

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    int mn = 1000000000, mx = 0, n = con.nextInt();

    if (n < 2) System.out.println("Ooops!"); else

    {

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

      {

       int w = con.nextInt();

       if (w < mn) mn = w;

       if (w > mx) mx = w;

     }

     System.out.println(mn + " " + mx);

    }

  }

}

 

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

 

import java.util.*;

 

public class Main

{

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    int min = Integer.MAX_VALUE;

    int max = 0;

    int n = con.nextInt();

    if (n < 2)

      System.out.println("Ooops!");

    else

    {

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

      {

       int weight = con.nextInt();

       min = Math.min(min,weight);

       max = Math.max(max,weight);

     }

     System.out.println(min + " " + max);

    }

    con.close();

  }

}

 

Python реализация с сортировкой

 

n = int(input())

if n < 2 :

  print('Ooops!')

else:

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

  list.sort()

  print(list[0],list[-1])

 

Python реализация с минимумом и максимумом

 

n = int(input())

if n < 2 :

  print('Ooops!')

else:

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

  print(min(list),max(list))