| 18855 | 2025-11-07 14:43:06 | diak | Binária könyvtára | cpp17 | Forditási hiba |
import sys
# A nagyméretű számok kezelésére és gyorsabb beolvasásra
# Átállítjuk az input forrást, hogy gyorsabban olvasson nagy fájlok esetén.
# Ha interaktív konzolban futsz, használd a sima 'input()' függvényt.
input = sys.stdin.read
def binaria_konyvtara():
"""
Kiszámítja a minimálisan rendelendő könyvek számát a 'Binária könyvtára'
versenyfeladatban leírt feltételek szerint.
"""
# Beolvassa az összes inputot, és soronként szétválasztja
data = input().split()
if not data:
# Üres bemenet kezelése
return
# Az első elem N, a témák száma
try:
N = int(data[0])
except ValueError:
# Hibás N érték
return
# A maradék elemek a T_i könyvszámok (64-bites egész számként kezelve)
T_konyvszamok = [int(x) for x in data[1:]]
# A teljes rendelendő könyvszámot itt tároljuk.
# Python int típusa automatikusan kezeli a nagy számokat (64-bit felett is).
teljes_tobblet = 0
for T_i in T_konyvszamok:
if T_i <= 0:
# 0 vagy negatív könyvszámot figyelmen kívül hagyunk
continue
# 1. Meghatározzuk a szükséges ketteshatványt (P)
# T_i.bit_length() megadja, hány bit kell a T_i ábrázolásához.
# Ha T_i = 8 (bin: 1000), bit_length() = 4.
# Ha T_i = 7 (bin: 111), bit_length() = 3.
# A keresett P a legkisebb 2^K, ami > T_i. Ez mindig 2^(bit_length).
# P = 2 ** T_i.bit_length()
# Vagy bitenkénti eltolással (ez kicsit gyorsabb és elegánsabb):
P = 1 << T_i.bit_length()
# Példa: Ha T_i = 8, P = 1 << 4 = 16.
# Példa: Ha T_i = 7, P = 1 << 3 = 8.
# 2. Kiszámoljuk a minimális kapacitást
# C_min = P - 1 (a ketteshatvány előtti szám, pl. 15 vagy 7)
C_min = P - 1
# 3. Kiszámoljuk a hiányzó könyveket
tobblet_i = C_min - T_i
# 4. Hozzáadjuk az összeghez
teljes_tobblet += tobblet_i
print(teljes_tobblet)
# A program elindítása
binaria_konyvtara()open /var/local/lib/isolate/420/box/a.out: no such file or directory
main.cpp:2:3: error: invalid preprocessing directive #A
2 | # A nagyméretű számok kezelésére és gyorsabb beolvasásra
| ^
main.cpp:3:3: error: invalid preprocessing directive #\U000000c1t\U000000e1ll\U000000edtjuk
3 | # Átállítjuk az input forrást, hogy gyorsabban olvasson nagy fájlok esetén.
| ^~~~~~~~~~
main.cpp:4:3: error: invalid preprocessing directive #Ha
4 | # Ha interaktív konzolban futsz, használd a sima 'input()' függvényt.
| ^~
main.cpp:8:7: warning: missing terminating " character
8 | """
| ^
main.cpp:8:7: error: missing terminating " character
main.cpp:9:58: warning: character constant too long for its type
9 | Kiszámítja a minimálisan rendelendő könyvek számát a 'Binária könyvtára'
| ^~~~~~~~~~~~~~~~~~~
main.cpp:11:7: warning: missing terminating " character
11 | """
| ^
main.cpp:11:7: error: missing terminating " character
main.cpp:13:7: error: invalid preprocessing directive #Beolvassa
13 | # Beolvassa az összes inputot, és soronként szétválasztja
| ^~~~~~~~~
main.cpp:17:11: error: invalid preprocessing directive #\U000000dcres
17 | # Üres bemenet kezelése
| ^~~~
main.cpp:20:7: error: invalid preprocessing directive #Az
20 | # Az első elem N, a témák száma
| ^~
main.cpp:24:11: error: invalid preprocessing directive #Hib\U000000e1s
24 | # Hibás N érték
| ^~~~~
main.cpp:27:7: error: invalid preprocessing directive #A
27 | # A maradék elemek a T_i könyvszámok (64-bites egész számként kezelve)
| ^
main.cpp:30:7: error: invalid preprocessing directive #A
30 | # A teljes rendelendő könyvszámot itt tároljuk.
| ^
main.cpp:31:7: error: invalid preprocessing directive #Python
31 | # Python int típusa automatiku...