Предмет: Информатика, автор: dareddwarf14298

Кiшка-програмiст Паскалiна, як i бiльшiсть дiтей, не любить складати дроби, особливо з рiзними знаменниками. Їй заданi чотири додатних цiлих числа , , i . Необхiдно розставити цi числа в такому порядку, щоб сума:





+





була якнайменша.

Ось Пiфагор таке завдання усно розв’язав би за хвилину, а

Паскалiна написала програму. Напишiть i ви таку програму!

Формат вхiдних даних

Вашiй програмi на вхiд подаються чотири додатних цiлих

числа: , , i .

Формат вихiдних даних

Виведiть чотири числа, якi є перестановкою чисел , , i

, щоб зазначена сума дробiв була мiнiмально можливою. Якщо є кiлька способiв переставити числа, то

виведiть будь-який з них.

Приклади

тест вiдповiдь

1 2 3 4 1 3 2 4

5 5 5 5 5 5 5 5

Пояснення до прикладiв

У першому прикладi, впорядкувавши числа таким чином, ми отримуємо суму:

1/3+2/4=5/6,

отримати менше значення неможливо.

У другому прикладi сума в будь-якому випадку дорiвнюватиме:

5/5+5/5= 2.
Нужен паскаль или питон


p15: Не забывайте добавлять что нужен Паскаль, видимо.
archery: begin
var a := ReadArrInteger(4);
// var a := Arr(7, 3, 5, 1);
a.Sort();

Println(a[0], a[2], a[1], a[3]);
WritelnFormat('{0}/{1} + {2}/{3} = {4}', a[0], a[2], a[1], a[3], a[0] / a[2] + a[1] / a[3]);
end.
dareddwarf14298: ты не сюда отправил
archery: да просто p15 первым ответил и больше уже нельзя давать ответов
archery: а раз код есть то не выкидывать же его

Ответы

Автор ответа: p15
1

Ответ:

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

a.sort()

if (a[0]/a[2]+a[1]/a[3])<(a[1]/a[2]+a[0]/a[3]):

   print(a[0],a[2],a[1],a[3])

else:

   print(a[1],a[2],a[0],a[3])

Объяснение:

Я даже не уверен, что if когда-то сработает или можно без него (надо математику привлекать), но так точно работает


archery: мне тоже интересно нужен ли иф, но наверное нет, а как проверить даже не знаю.
archery: а все, поняла, проверила, не нужен
Похожие вопросы