Всем известно, что «от перестановки слагаемых сумма не изменяется». Однако, случается и так, что перестановка двух чисел приводит к более интересным последствиям.
Пусть, например, заданы три числа: a1, a2, a3. Рассмотрим равенство a1+ a2= a3. Оно может быть неверным (например, если a1= 1, a2= 4, a3= 3), однако может стать верным, если поменять некоторые числа местами (например, если поменять местами a2 и a3, оно обратится в равенство 1 + 3 = 4).
Ваша задача – по заданным трем числам определить: можно ли их переставить так, чтобы сумма первых двух равнялась третьему.
Примеры
Пусть, например, заданы три числа: a1, a2, a3. Рассмотрим равенство a1+ a2= a3. Оно может быть неверным (например, если a1= 1, a2= 4, a3= 3), однако может стать верным, если поменять некоторые числа местами (например, если поменять местами a2 и a3, оно обратится в равенство 1 + 3 = 4).
Ваша задача – по заданным трем числам определить: можно ли их переставить так, чтобы сумма первых двух равнялась третьему.
Входные данные
Входной файл INPUT.TXT содержит три целых числа: a1, a2, a3 (−100000000 ≤ a1, a2, a3 ≤ 100000000).
Входной файл INPUT.TXT содержит три целых числа: a1, a2, a3 (−100000000 ≤ a1, a2, a3 ≤ 100000000).
Выходные данные
В выходной файл OUTPUT.TXT выведите слово «YES», если заданные числа можно переставить так, чтобы сумма первых двух равнялась третьему. В противном случае выведите в выходной файл слово «NO».
В выходной файл OUTPUT.TXT выведите слово «YES», если заданные числа можно переставить так, чтобы сумма первых двух равнялась третьему. В противном случае выведите в выходной файл слово «NO».
Примеры
№
|
INPUT.TXT
|
OUTPUT.TXT
|
1
|
3 5 2
|
YES
|
2
|
2 2 5
|
NO
|
3
|
2 2 4
|
YES
|
var
r,n,t:
longint
;
f,f1:text;
begin
assign(f,
'input.txt'
);
reset(f);
read(f,r,n,t);
close(f);
assign(f1,
'output.txt'
);
rewrite(f1);
if
(r=n+t)
or
(n=r+t)
or
(t=r+n)
then
write
(f1,
'YES'
)
else
write
(f1,
'NO'
);
close(f1);
end
.
Комментариев нет:
Отправить комментарий