8883. Прямоугольник

 

Заданы четыре натуральных числа a, b, c, d. Найдите сумму заданных чисел, если существует прямоугольник  с длинами сторон a, b, c, d. Выведите No в противном случае.

 

Вход. Четыре натуральных числа a, b, c, d, не больших 109.

 

Выход. Если прямоугольник существует, то выведите сумму всех чисел. Иначе выведите No.

 

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

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

7 4 4 7

22

 

 

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

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

9 9 9 6

No

 

 

РЕШЕНИЕ

условный оператор

 

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

Прямоугольник можно составить только если числла a, b, c, d можно разбить на попарно равные. Следует рассмотреть все возможные разбиения на пары, а именно:

·        a = b и c = d;

·        a = c и b = d;

·        a = d и b = c;

 

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

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

 

scanf("%lld %lld %lld %lld", &a, &b, &c, &d);

 

Если прямоугольник существует, то выводим его периметр. Иначе выводим No”.

 

if ((a == b && c == d) || (a == c && b == d) || (a == d && b == c))

  printf("%d\n", a + b + c + d);

else

  printf("No\n");

 

Java реализация

 

import java.util.*;

 

public class Main

{

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    int a = con.nextInt();

    int b = con.nextInt();

    int c = con.nextInt();

    int d = con.nextInt();

   

    if ((a == b && c == d) || (a == c && b == d) ||

        (a == d && b == c))

      System.out.println(a + b + c + d);

    else

      System.out.println("No");

    con.close();

  }

}

 

Python реализация

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

 

a, b, c, d = map(int, input().split())

 

Если прямоугольник существует, то выводим его периметр. Иначе выводим No”.

 

if (a == b and c == d) or (a == c and b == d) or (a == d and b == c):

  print(a + b + c + d)

else:

  print("No")