Unduh aplikasi
Pilih folder dan minta asisten membaca berkas terkait sebelum mengeditnya. Tentukan tujuan serta batas tugas.
Alokasikan hingga 10000 kursi pada maksimal 1000 bobot bulat nonnegatif dengan sisa terbesar. Uji bobot nol dan sisa sama yang diurutkan menurut masukan, serta tolak alokasi positif dengan total bobot nol sebelum membagi.
Pilih folder dan minta asisten membaca berkas terkait sebelum mengeditnya. Tentukan tujuan serta batas tugas.
Pilih endpoint yang kompatibel. Alat yang tersedia dan kualitas jawaban bergantung pada model serta server yang digunakan.
Tinjau perubahan dan keluaran perintah. Jalankan pemeriksaan proyek sebelum menerima hasilnya; kode yang dihasilkan tidak otomatis sudah diuji.
Bandingkan perilaku sebenarnya dengan hasil yang diharapkan. Jika pemeriksaan gagal, cari penyebabnya sebelum membuat perubahan lain.
def allocate(weights, seats):
if type(weights) not in (list, tuple) or len(weights) > 1000:
raise ValueError("weights.container")
weights = tuple(weights)
if type(seats) is not int or not 0 <= seats <= 10000:
raise ValueError("seats.range")
if len(weights) > 1000 or any(type(w) is not int or w < 0 for w in weights):
raise ValueError("weights.invalid")
total = sum(weights)
if total == 0:
if seats:
raise ValueError("weight.zero")
return [0] * len(weights)
result = [w * seats // total for w in weights]
remaining = seats - sum(result)
order = sorted(range(len(weights)), key=lambda i: (-(weights[i] * seats % total), i))
for i in order[:remaining]:
result[i] += 1
return resultTinjau sebelum menerapkan. Tinjau perubahan dan keluaran perintah. Jalankan pemeriksaan proyek sebelum menerima hasilnya; kode yang dihasilkan tidak otomatis sudah diuji.