144332025-01-10 18:45:43birozsAutókódoláspython3Részben helyes 47/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)
    print(decimalis(binalak+"0"))
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))


    
RészfeladatÖsszpontTesztVerdiktIdőMemória
base47/50
1Elfogadva0/016ms3320 KiB
2Elfogadva0/016ms3124 KiB
3Részben helyes1/217ms3124 KiB
4Elfogadva2/217ms3120 KiB
5Elfogadva2/217ms3124 KiB
6Elfogadva2/216ms3136 KiB
7Elfogadva2/216ms3120 KiB
8Elfogadva4/417ms3144 KiB
9Elfogadva4/417ms3112 KiB
10Elfogadva4/417ms3124 KiB
11Elfogadva4/417ms3124 KiB
12Elfogadva4/416ms3136 KiB
13Részben helyes2/417ms3276 KiB
14Elfogadva4/416ms3124 KiB
15Elfogadva4/416ms3256 KiB
16Elfogadva4/416ms3312 KiB
17Elfogadva4/416ms3088 KiB