syuntoku14の進捗

進捗を書きなぐります

AOJでPythonに慣れる(2問目)

問題
Heaps - Maximum Heap

所感
・Outputの形式をちゃんと読んでなくてはまった

解法
6.006のLecture4を見たら理解が進む
・問題文の通りに実装するだけ

コード

def maxHeapify(A,i,H):
    l=2*i
    r=2*i+1

    if l<=H and A[l-1]>A[i-1]:
        largest=l
    else:
        largest=i
    if r<=H and A[r-1]>A[largest-1]:
        largest=r
    
    if largest!=i:
        A[i-1],A[largest-1]=A[largest-1],A[i-1]
        maxHeapify(A,largest,H)
        
H=int(input())
A=list(map(int,input().split()))
for i in range(H//2,0,-1):
    maxHeapify(A,i,H)
    
print(" {}".format(" ".join(map(str,A))))

三日坊主にならないようがんばりを見せたい