VACCINATE HOSPITAL

Problem Link : VACCHOS

Problem Statement:

There are N Hospitals and at each Hospital there are Pi number of Patients.You are a Doctor(But you are very Lazy) and You have been Given a task to Apply Vaccines to Each Patient.But There is a Problem.You can give Vaccine to Exactly K Patients on a Day.Your Task is to Find Smallest K (Because you are feeling Tired) such that you can Vaccinate all the Patients of N Hospitals in almost D days.

Note:-> If Patients of a Hospital is less than K then it is said to be Normal.

Input:

1)The first line of the input contains two space-separated integers denoting N and D respectively.
2)The second line contains N space separated integers denoting Patients P1,P2,….PN.

Output:

1)Print only one line containing a single integer denoting the smallest K as explained in the problem statement.
2)If it is not possible to find such K, then print −1

Constraints:

1≤N≤10^5
1≤Pi≤10^4
1≤D≤10^9

Sample Input:

6 16
2 3 4 5 7 16

Sample Output:

3

Explanation:

By Vaccinating 3 Patients for up to 16 Days He can Vaccinate all the Patients.

Solution :

n,d=map(int,input().split())
a=list(map(int,input().split()))
m = max(a)
h = m
l = 1
if d < n:
	print<<-1<<endl;
else:
	v = False
	while l < h:
		k = (l+h)//2
		s=0
		for i in range(n):
			s += ceil(a[i]/k)
		if s == d:
			v = True
			print<<k<<endl;
			break
		if s < d:
			h = k
		else:
			l = k+1
	if not v:
		print(l);
1 Like

Where is the editorial?
This is just the solution, copy-pasted.