142492025-01-10 10:43:20birozsAutókódoláspython3Részben helyes 18/5017ms3392 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"))
elif binalak[-1] == "0":
    lista = list(binalak)
    i = n - 2
    while lista[i] != "1":
        i -= 1
    elso1poz = i
    lista[i] = "0"
    lista[-1] = "1"
    elozobin = "".join(lista)
    print(decimalis(elozobin))
    lista = list(binalak)
    i = elso1poz - 1
    while i >= 0 and lista[i] != "0":
        i -= 1
    if i == -1:
        kovetkezobin = "1" + "0"*db0 + "1"*(db1-1)
        print(decimalis(kovetkezobin))
    else:
        lista[i] = "1"
        kovetkezobin = "".join(lista[:i+1])+"0"*(lista[i+1:].count("0")+1)+"1"*(elso1poz-i-1)
        print(decimalis(kovetkezobin))
RészfeladatÖsszpontTesztVerdiktIdőMemória
base18/50
1Elfogadva0/017ms3312 KiB
2Elfogadva0/016ms3136 KiB
3Részben helyes1/217ms3116 KiB
4Elfogadva2/217ms3140 KiB
5Hibás válasz0/217ms3316 KiB
6Hibás válasz0/217ms3124 KiB
7Részben helyes1/216ms3124 KiB
8Hibás válasz0/417ms3120 KiB
9Hibás válasz0/416ms3100 KiB
10Részben helyes2/416ms3124 KiB
11Részben helyes2/416ms3392 KiB
12Részben helyes2/416ms3244 KiB
13Részben helyes2/417ms3128 KiB
14Részben helyes2/416ms3312 KiB
15Részben helyes2/416ms3128 KiB
16Hibás válasz0/414ms3124 KiB
17Részben helyes2/416ms3120 KiB