"""DuckieDai Inequality From Roots for TI-84 Plus CE Python."""


def duckiedai_intro(program_name, wait=True):
    title = program_name[:16]
    empty = 16 - len(title)
    left = empty // 2
    right = empty - left

    print("+----------------------+")
    print("|   " + " " * left + title + " " * right + "   |")
    print("|                      |")
    print("|       __             |")
    print("|   ___(o )>  quack!   |")
    print("|   \\ <_. )           |")
    print("|    `---'             |")
    print("|     by DuckieDai     |")
    print("| hiddenwordscanner.com|")
    print("+----------------------+")
    print("Loading...")

    if wait:
        input("Press enter to start ")
        print("\n" * 8)


def frac(x):
    for d in range(1,101):
        n=round(x*d)
        if abs(x-n/d)<0.000001:
            if d==1:
                return str(n)
            return str(n)+"/"+str(d)
    return str(round(x,4))


def getroot():
    print("1 whole")
    print("2 fraction")
    t=input("Type: ")

    if t=="2":
        num=int(input("numerator: "))
        den=int(input("denominator: "))
        return num/den
    else:
        return float(input("value: "))


duckiedai_intro("Ineq From Roots")

n=int(input("Distinct roots: "))

roots=[]
mult=[]

for i in range(n):
    print("Root",i+1)
    roots.append(getroot())
    mult.append(int(input("multiplicity: ")))

# Sort roots and multiplicities together
for i in range(n):
    for j in range(i+1,n):
        if roots[i]>roots[j]:
            roots[i],roots[j]=roots[j],roots[i]
            mult[i],mult[j]=mult[j],mult[i]

print("Leading sign:")
print("1 positive")
print("-1 negative")
lead=int(input("Sign: "))

print("1 >0")
print("2 >=0")
print("3 <0")
print("4 <=0")
op=input("Choice: ")

sign=[0]*(n+1)

if lead>0:
    sign[n]=1
else:
    sign[n]=-1

for i in range(n-1,-1,-1):
    sign[i]=sign[i+1]

    if mult[i]%2==1:
        sign[i]=-sign[i]

want=1

if op=="3" or op=="4":
    want=-1

include=(op=="2" or op=="4")

print("Solution:")

found=False

for i in range(n+1):

    if sign[i]==want:
        found=True

        if i==0:
            left="-inf"
            lb="("
        else:
            left=frac(roots[i-1])

            if include:
                lb="["
            else:
                lb="("

        if i==n:
            right="inf"
            rb=")"
        else:
            right=frac(roots[i])

            if include:
                rb="]"
            else:
                rb=")"

        print(lb+left+","+right+rb)

if include:
    for i in range(n):

        leftok=sign[i]==want
        rightok=sign[i+1]==want

        if not leftok and not rightok:
            found=True
            s=frac(roots[i])
            print("["+s+","+s+"]")

if not found:
    print("EMPTY SET")
