Розв’язок олімпіадної задачі з програмування “Шкільна алгебра”

Розв’язок олімпіадної задачі з програмування “Різниця”
21 Листопада, 2019
Введення та редагування тексту Word 2016
Введення та редагування тексту Word 2016
25 Листопада, 2019

Розв'язок олімпіадної задачі пробного туру з програмування 2019 року "Шкільна алгебра"

Використовується мова програмування Python 3

Шкільна алгебра

Тричлен a + bx + сy двох змінних x і y однозначно визначається коефіцієнтами a, b та c. Написати програму, яка за заданими a, b та c виводить відповідний тричлен, що записаний з використанням таких алгебраїчних правил:

• коефіцієнт при члені, що містить змінну, опускається, якщо його модуль дорівнює одиниці;

• член, коефіцієнт якого дорівнює нулю, опускається (крім випадку, коли всі коефіцієнти дорівнюють нулю, тоді тричлен складається з однієї цифри 0);

• знак "+" опускається, якщо він передує від'ємному коефіцієнту;

• знак "+" опускається, якщо він стоїть на початку виразу (так званий унарний плюс);

• знак множення між коефіцієнтом та змінною не записується.

При цьому заборонено міняти місцями члени.

Формат вхідних даних:

Через пробіл записані цілі коефіцієнти a, b та с, кожний з яких не перевищує 30000 за абсолютною величиною.

Формат вихідних даних:

Виведіть тричлен, що записаний з використанням вказаних алгебраїчних правил.

Examples

Input

0 2 -1

Output

2x-y

Input

3 0 -2

Output

3-2y

Обмеження

Full score: 100

Time limit: 100 ms

Real time limit: 5 s

Memory limit: 64M

Розв'язок

Правильність розв'язку - 100/100

a, b, c = map(int, input().split())
if a==0 and b==0 and c==0:
    print(0)
elif a==0 and b==0:
    if abs(c) == 1:
        if c < 0:
            print("-y")
        else:
            print("y")
    else:
        a = str(a)
        b = str(b)
        c = str(c)
        print(c+"y")
elif a==0 and c==0:
    if abs(b) == 1:
        if b < 0:
            print("-x")
        else:
            print("x")
    else:
        a = str(a)
        b = str(b)
        c = str(c)
        print(b+"x")
elif b==0 and c==0:
    a = str(a)
    b = str(b)
    c = str(c)
    print(a)
elif a==0:
    if abs(c) == 1 and abs(b) == 1:
        if b < 0 and c < 0:
            b = abs(b)
            c = abs(c)
            a = str(a)
            b = str(b)
            c = str(c)
            print("-" + "x-" + "y")
        elif b < 0:
            b = abs(b)
            a = str(a)
            b = str(b)
            c = str(c)
            print("-" + "x+" + "y")
        elif c < 0:
            c = abs(c)
            a = str(a)
            b = str(b)
            c = str(c)
            print("x-" + "y")
        else:
            a = str(a)
            b = str(b)
            c = str(c)
            print("x+" + "y")
    elif abs(b) == 1:
        if b < 0:
            b = abs(b)
            a = str(a)
            b = str(b)
            if c<0:
                c = str(c)
                print("-" + "x" + c + "y")
            else:
                c = str(c)
                print("-" + "x+" + c + "y")
        else:
            a = str(a)
            b = str(b)
            if c<0:
                c = str(c)
                print("x" + c + "y")
            else:
                c = str(c)
                print("x+" + c + "y")
    elif abs(c) == 1:
        if c < 0:
            c = abs(c)
            a = str(a)
            b = str(b)
            c = str(c)
            print(b + "x-" + "y")
        else:
            a = str(a)
            b = str(b)
            c = str(c)
            print(b + "x+" + "y")
    elif b < 0 and c < 0:
        b = abs(b)
        c = abs(c)
        a = str(a)
        b = str(b)
        c = str(c)
        print("-" + b + "x-" + c + "y")
    elif b < 0:
        b = abs(b)
        a = str(a)
        b = str(b)
        c = str(c)
        print("-" + b + "x+" + c + "y")
    elif c < 0:
        c = abs(c)
        a = str(a)
        b = str(b)
        c = str(c)
        print(b + "x-" + c + "y")
    else:
        a = str(a)
        b = str(b)
        c = str(c)
        print(b+"x+"+c+"y")
elif b==0:
    if abs(c) == 1:
        if c < 0:
            c = abs(c)
            a = str(a)
            b = str(b)
            c = str(c)
            print(a + "-" + "y")
        else:
            a = str(a)
            b = str(b)
            c = str(c)
            print(a + "+" + "y")
    elif c < 0:
        c = abs(c)
        a = str(a)
        b = str(b)
        c = str(c)
        print(a + "-" + c + "y")
    else:
        a = str(a)
        b = str(b)
        c = str(c)
        print(a+"+"+c+"y")
elif c==0:
    if abs(b) == 1:
        if b < 0:
            b = abs(b)
            a = str(a)
            b = str(b)
            c = str(c)
            print(a + "-" + "x")
        else:
            a = str(a)
            b = str(b)
            c = str(c)
            print(a + "+" + "x")
    elif b < 0:
        b = abs(b)
        a = str(a)
        b = str(b)
        c = str(c)
        print(a + "-" + b + "x")
    else:
        a = str(a)
        b = str(b)
        c = str(c)
        print(a+"+"+b+"x")
elif abs(c)==1 and abs(b)==1:
        if b < 0 and c < 0:
            b=abs(b)
            c=abs(c)
            a = str(a)
            b = str(b)
            c = str(c)
            print(a + "-" + "x-" + "y")
        elif b < 0:
            b=abs(b)
            a = str(a)
            b = str(b)
            c = str(c)
            print(a + "-" + "x+" + "y")
        elif c < 0:
            c=abs(c)
            a = str(a)
            b = str(b)
            c = str(c)
            print(a + "+" + "x-" + "y")
        else:
            a = str(a)
            b = str(b)
            c = str(c)
            print(a+"+"+"x+"+"y")
elif abs(b)==1:
    if b<0:
        b=abs(b)
        if c<0:
            a = str(a)
            b = str(b)
            c = str(c)
            print(a + "-" + "x" + c + "y")
        else:
            a = str(a)
            b = str(b)
            c = str(c)
            print(a + "-" + "x+" + c + "y")
    else:
        if c<0:
            a = str(a)
            b = str(b)
            c = str(c)
            print(a + "+" + "x" + c + "y")
        else:
            a = str(a)
            b = str(b)
            c = str(c)
            print(a + "+" + "x+" + c + "y")
elif abs(c)==1:
    if c<0:
        c=abs(c)
        a = str(a)
        b = str(b)
        c = str(c)
        print(a+"+"+b+"x-"+"y")
    else:
        a = str(a)
        b = str(b)
        c = str(c)
        print(a+"+"+b+"x+"+"y")
elif b<0 and c<0:
    b=abs(b)
    c=abs(c)
    a = str(a)
    b = str(b)
    c = str(c)
    print(a+"-"+b+"x-"+c+"y")
elif b<0:
    b=abs(b)
    a = str(a)
    b = str(b)
    c = str(c)
    print(a+"-"+b+"x+"+c+"y")
elif c<0:
    c=abs(c)
    a = str(a)
    b = str(b)
    c = str(c)
    print(a+"+"+b+"x-"+c+"y")
else:
    a = str(a)
    b = str(b)
    c = str(c)
    print(a+"+"+b+"x+"+c+"y")

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *