Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Varitan
1 / 1 / 0
Регистрация: 25.01.2016
Сообщений: 107
1

Выведите натуральное число s — максимальную возможную площадь прямоугольника

30.05.2016, 23:52. Просмотров 578. Ответов 1
Метки нет (Все метки)

Составляем прямоугольник

Ограничение времени 1 секунда
Ограничение памяти 64Mb
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
У Васи есть набор из 4 палочек, они имеют длины a, b, c, d. Вася хочет составить из них прямоугольник, однако он обнаружил, что это возможно сделать не для всех четверок a,b,c,d. Тогда он решил разрезать некоторые палочки на две части, одну из которых он выбросит, а другую использует как сторону прямоугольника. Помогите Васе сделать разрезы так, чтобы у него получился прямоугольник максимальной площади.
Формат ввода

В единственной строке заданы 4 натуральных числа a,b,c,d (1≤ a,b,c,d ≤ 99), разделенные пробелами — исходные длины палочек, имеющихся у Васи.
Формат вывода

В единственной строке выведите натуральное число s — максимальную возможную площадь прямоугольника, составленного Васей.
Пример 1

Ввод Вывод
2 7 3 8
14
Пример 2

Ввод Вывод
2 2 3 3
6
Примечания

В первом примере Вася может обрезать третью и четвертую палочки так, чтобы их длины стали 2 и 7 соответственно. Тогда он составит прямоугольник со сторонами 2 и 7, его площадь равна 14.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
var
  a: array[1..5] of longint;
  g, i, n, Min, min9, Min2, Max, Max2: longint;
  t:text;
  r:boolean;
 
begin
r:=false;
assign(t, 'input.txt');
  reset(t);
  for i := 1 to 4 do
  begin
    read(t,a[i]);
  end;
  
 
  Min := A[1];
  Max := A[1];
  for N := 2 to 4 do 
  begin
    if A[N] < Min then 
      Min := A[N]
    else if A[N] > Max then 
      Max := A[N];
  end;  
  Min2 := A[1]; 
  Max2 := A[1];
  for N := 2 to 4 do
  begin
    if (A[N] > Max2) and (A[N] <> Max) then
      Max2 := A[N];
  end; 
 
g:=max2*min;
 
  
  for i := 1 to 4 do
  begin
    if(a[i] = a[i + 1]) then 
      if(a[i] > max2) then
      begin
        g := max * min;
        r:=false;
        end;
      
  end;
  assign(t, 'output.txt');
  rewrite(t);
  
  writeln(t,g);
  close(t);
end.
В чем может быть ошибка?Помогите пожалуйста,спасибо!

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

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2016, 23:52
Ответы с готовыми решениями:

Дано натуральное число. Определить его максимальную и минимальную цифру
2. Дано натуральное число. Определить его максимальную цифру. Определить его...

Дано натуральное число N. Выведите слово YES, если число N является точной степенью двойки, или слово NO
Дано натуральное число N. Выведите слово YES, если число N является точной...

Дано натуральное число n1. Выведите его наименьший делитель, отличный от 1
Дано натуральное число n1. Выведите его наименьший делитель, отличный от 1. ...

Выведите одно натуральное число – номер ближайшего предка для двух видов
Возможно как-то неправильно назвал тему, но вот суть: Во время исследований,...

Дано натуральное число N. Выведите его представление в двоичном виде в обратном порядке.
Ришите задачу по Информатике :Дано натуральное число N. Выведите его...

1
Sergio Leone
2467 / 1112 / 579
Регистрация: 07.06.2014
Сообщений: 3,259
31.05.2016, 07:31 2
я бы просто отсортировал значения в массиве по возрастанию и перемножил предпоследний и первый:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
var
  a: array[1..4] of longint;
  s: longint;
  i,j:integer;
  t:text;
begin
  assign(t, 'input.txt');
  reset(t);
  for i := 1 to 4 do
  begin
    read(t,a[i]);
  end;
 
  for i:=1 to 3 do
    for j:=i+1 to 4 do
     if a[i]>a[j] then
       begin s:=a[i]; a[i]:=a[j]; a[j]:=s end;
 
  s:=a[3]*a[1];
  
  assign(t, 'output.txt');
  rewrite(t);
 
  writeln(t,s);
  close(t);
end.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2016, 07:31

Известны вершины прямоугольника. Найти площадь и периметр прямоугольника
Известны координаты вершин прямоугольника ABCD , A(x1,y1), B(x2,y2), C(x3,y3)....

Пользователь вводит натуральное число.Найти сумму цифр этого числа,деленную на максимальную цифру.Использовать процедуры и функции
Пользователь вводит натуральное число.Найти сумму цифр этого числа,деленную на...

Дано натуральное число N. Выведите все его цифры по одной, в обычном порядке, разделяя их пробелами или новыми
Дано натуральное число N. Выведите все его цифры по одной, в обычном порядке,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru