144912025-01-12 15:02:13fzs1969Autókódoláspython3Elfogadva 50/5017ms3320 KiB
def kettesbe(szám):
    számjegyek = []
    while szám > 0:
        számjegyek.append(szám % 2)
        szám = szám // 2
    számjegyek.append(0)
    return számjegyek
def számmá(számjegyek):
    érték = 0
    hossz = len(számjegyek)
    for i in range(hossz-1, 0-1, -1):
        érték = 2*érték + számjegyek[i]
    return érték

kód = int(input())
lista = kettesbe(kód)
# print(lista)
# nagyobb
hely = 0
while lista[hely] == 0:
    hely += 1
db = 0
while lista[hely] == 1:
    lista[hely] = 0
    hely += 1
    db += 1
lista[hely] = 1
for i in range(db-1):
    lista[i] = 1
# print(lista)
következő = számmá(lista)
# előző meghatározása
lista = kettesbe(kód)+[0]
hely = 0
if lista[0] == 1:
    while lista[hely] == 1:
        hely += 1
    # print(hely, len(lista))
    if hely != len(lista)-2:
        while lista[hely] == 0:
            hely += 1
        lista[hely] = 0
        lista[hely-1] = 1
        lista = sorted(lista[:(hely-1)]) + lista[hely-1:]
        előző = számmá(lista)
    else:
        előző = -1
else:
    while lista[hely] == 0:
        hely += 1
    # print(hely)
    lista[hely] = 0
    lista[hely-1] = 1
    előző = számmá(lista)
print(előző)
print(következő)
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/016ms3060 KiB
2Elfogadva0/016ms3124 KiB
3Elfogadva2/216ms3172 KiB
4Elfogadva2/217ms3124 KiB
5Elfogadva2/217ms3124 KiB
6Elfogadva2/216ms3320 KiB
7Elfogadva2/217ms3124 KiB
8Elfogadva4/417ms3156 KiB
9Elfogadva4/416ms3228 KiB
10Elfogadva4/417ms3172 KiB
11Elfogadva4/416ms3188 KiB
12Elfogadva4/417ms3076 KiB
13Elfogadva4/417ms3124 KiB
14Elfogadva4/417ms3124 KiB
15Elfogadva4/417ms3128 KiB
16Elfogadva4/416ms3084 KiB
17Elfogadva4/416ms3064 KiB