Current streak:
0 days
Longest streak:
3 days
Less
More
#include <bits/stdc++.h>
using namespace std;
bool ayushGivesNinjatest(vector<int>time,int n,int m, int mid){
int studentCount = 1;
int pageSum = 0;
for(int i=0;i<n;i++) {
if(pageSum + time[i] <= mid) {
pageSum += time[i];
}
else {
studentCount++;
if(studentCount > m|| time[i] > mid){
return false;
}
pageSum = time[i];
}
if(studentCount >m){
return false;
}
//cout << "allocateBooks" << endl;
}
return true;
}
int ayushGivesNinjatest(int n, int m, vector<int> time)
{
int s = 0;
int sum = 0;
for(int i = 0; i < n; i++) {
sum += time[i];
}
int e = sum;
int ans = -1;
int mid = s+(e - s)/2;
while(s<=e) {
if(ayushGivesNinjatest(time,n,m,mid)){
ans = mid;
e = mid - 1;
}
else
{
s = mid + 1;
}
mid = s +(e - s)/2;
}
return ans;
}