Задачи 3 (2019)

Задача 3а. [1.3.2, стр.81, sumzero.c]
Нека са дадени числата a1, a2, ..., an. Да се поставят операции "+" и "-" между числата ai  и ai+1 за i = 1, 2,  ..., n-1 така, че резултатът след пресмятане на получения израз да бъде равен на зададено число b (1 < n < 20).

Вход:
На входа се задават редици от n + 1 числа a1, a2, ..., an, b - всяка редица на отделен ред. Всички числа са цели в интервала [0, 1000].

Изход:

За всяка редица от входа се отпечатва един израз със стойност b. Ако не може да се получи тази стойност,  да се остави празен ред.

Примерен вход:
1 1 0
1 2 3 4 5 6 7 8 0
3 4 2
30 20 40 10

Решение за примерния вход:
1-1=0
1+2+3+4-5-6-7+8=0

30+20-40=10

Проверете задача 3b тук: https://www.hackerrank.com/contests/cscb300-2018-t01/challenges/2018-3b

Задача 3b. Да се напише програма за пресмятане на аритметични изрази, съдържащи събиране и изваждане на прости дроби. Резултатът да се представи като несъкратима дроб.

Стандартен вход:
Всеки пример се задава със суми и разлики на дроби
на отделен ред (виж примера по-долу):  Всички числа в израза са цели положителни числа по-малки от 10000 . Входът съдържа няколко примера.

Стандартен изход:
За всеки пример на изхода се записва резултата като несъкратимата дроб по същия начин, както зададените на входа дроби. Когато решението е цяло число, то се записва по нормалния начин.

Пример:

1/2 + 1/3 - 1/6
10/4 - 2/4

Решение на примера:
2/3
2