25 lines
691 B
C#
25 lines
691 B
C#
public class Solution {
|
|
public int[] SuccessfulPairs(int[] spells, int[] potions, long success) {
|
|
int getSuccessful(long strength) {
|
|
var (left, right) = (0, potions.Length);
|
|
|
|
while (left < right) {
|
|
var mid = (left + right) / 2;
|
|
if (strength * potions[mid] >= success) {
|
|
right = mid;
|
|
} else {
|
|
left = mid + 1;
|
|
}
|
|
}
|
|
|
|
return potions.Length - left;
|
|
}
|
|
|
|
// Ensort potions to allow bisection.
|
|
Array.Sort(potions);
|
|
|
|
return spells
|
|
.Select(s => getSuccessful(s))
|
|
.ToArray();
|
|
}
|
|
}
|