144382025-01-10 18:59:38birozsAutókódoláspython3Accepted 50/5017ms3320 KiB
N = int(input())
def binaris(x):
    bin = ""
    while x > 0:
        bin = str(x%2) + bin
        x = x // 2
    return bin
def decimalis(x):
    dec = 1
    for i in range(1,len(x)):
        dec = 2*dec + int(x[i])
    return dec
def exp2(x):
    n = 1
    while 2**n < x:
        n += 1
    return n

binalak = binaris(N)
db1 = binalak.count("1")
db0 = binalak.count("0")
n = len(binalak)
if db1 == 1:
    print(2**(exp2(N)-1))
    print(2**(exp2(N)+1))
elif db0 == 0:
    print(-1)
    binalak = "10"+"1"*(db1-1)
    print(decimalis(binalak))
else:
    #kovetkezo
    lista = list(binalak)
    i = n - 1
    while i > 0 and lista[i-1]+lista[i] != "01":
        i -= 1
    if i > 0:
        lista[i-1] = "1"
        lista[i] = "0"
        vege = lista[i+1:]
        vege.sort()
        kovetkezobin = "".join(lista[:i+1])+"".join(vege)
    else:
        lista[0] = "0"
        lista.sort()
        kovetkezobin = "1"+"".join(lista)
    #elozo
    lista = list(binalak)
    i = n - 1
    while lista[i-1]+lista[i] != "10":
        i -= 1
    if i > 1:
        lista[i-1] = "0"
        lista[i] = "1"
        vege = lista[i+1:]
        vege.sort(reverse=True)
        elozobin = "".join(lista[:i+1])+"".join(vege)
    else:
        lista.sort(reverse=True)
        elozobin = "".join(lista[:-1])
    print(decimalis(elozobin))
    print(decimalis(kovetkezobin))


    
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/017ms3144 KiB
2Accepted0/016ms3116 KiB
3Accepted2/216ms3316 KiB
4Accepted2/216ms3124 KiB
5Accepted2/217ms3092 KiB
6Accepted2/216ms3252 KiB
7Accepted2/216ms3216 KiB
8Accepted4/417ms3252 KiB
9Accepted4/417ms3124 KiB
10Accepted4/417ms3128 KiB
11Accepted4/417ms3320 KiB
12Accepted4/417ms3312 KiB
13Accepted4/416ms3124 KiB
14Accepted4/416ms3320 KiB
15Accepted4/416ms3220 KiB
16Accepted4/416ms3128 KiB
17Accepted4/416ms3124 KiB