Skip to content

Commit 038889d

Browse files
committed
Day 20 streak
1 parent 387ba8c commit 038889d

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
bool isValid(vector<int> C, int max_painters, int mid)
2+
{
3+
int painter=1;
4+
long long int sum=0;
5+
6+
for(int i=0;i<C.size();i++)
7+
{
8+
sum+=C[i];
9+
if(sum>mid)
10+
{
11+
sum=C[i];
12+
painter++;
13+
}
14+
15+
if(painter>max_painters)
16+
return false;
17+
}
18+
return true;
19+
}
20+
21+
int Solution::paint(int A, int B, vector<int> &C) {
22+
23+
int n=C.size();
24+
if(A>n)
25+
A=n;
26+
27+
int start=-1;
28+
long long int end=0;
29+
30+
int i;
31+
for(i=0;i<n;i++)
32+
{
33+
start=max(start,C[i]);
34+
end+=C[i];
35+
}
36+
long long int res=-1;
37+
while(start<=end)
38+
{
39+
long long int mid=start+(end-start)/2;
40+
41+
if(isValid(C,A,mid)==true)
42+
{
43+
res=mid;
44+
end=mid-1;
45+
}
46+
else
47+
start=mid+1;
48+
}
49+
50+
return (int)((res*B)%10000003);
51+
52+
53+
}
54+

0 commit comments

Comments
 (0)