importsysfromtypingimportListdefsolution(M:int,lengths:List[int])->int:answer=0# lt: 블루레이가 가질 수 있는 가장 작은 크기
# rt: 하나의 블루레이에 다 담을 수 있음 -> 즉, lengths의 합
lt,rt=max(lengths),sum(lengths)whilelt<=rt:mid=(lt+rt)//2tmp_sum,cnt=0,1forlengthinlengths:iflength+tmp_sum>mid:cnt+=1tmp_sum=0tmp_sum+=lengthifcnt<=M:answer=midrt=mid-1continuelt=mid+1returnanswerN,M=map(int,sys.stdin.readline().rstrip().split())lengths=list(map(int,sys.stdin.readline().rstrip().split()))print(solution(M,lengths))
Leave a comment