Cod sursa(job #2907852)

Utilizator xtreme77Patrick Sava xtreme77 Data 31 mai 2022 18:27:12
Problema Transport Scor 80
Compilator py Status done
Runda Arhiva de probleme Marime 0.72 kb
with open('transport.in') as f:
	with open('transport.out', 'w') as out:
		n, k = [int(elem) for elem in f.readline().split()]
		arr = [int(f.readline()) for _ in range(n)]
		



def check_volume(mid,arr,k):
	i = 0
	sum_arr = sum(arr)
	flag = True
	initial = mid
	while (k>0 and i<len(arr)):
		
		
		mid = mid - arr[i]
		
		sum_arr = sum_arr - arr[i]
		if mid < 0:
			mid = initial
			k-=1
			sum_arr = sum_arr + arr[i]
			i = i -1
					
		

		i+=1



	return sum_arr == 0

right = sum(arr)
left = 0


while (left<=right):
	

	mid = (left + right) // 2
	
	flag = check_volume(mid,arr,k)
	
		
	if flag == True:
		right = mid - 1
		sol = mid
	else: 
		left = mid + 1



with open('transport.out', 'w') as out:
		out.write(str(sol) + "\n")