From 22d2deb7f88c688303492e1b17bda9f85d6127cb Mon Sep 17 00:00:00 2001 From: jackfiled Date: Sat, 19 Apr 2025 14:36:19 +0800 Subject: [PATCH] 20250419 finished. --- src/problem/mod.rs | 2 ++ .../p2563_count_the_number_of_fair_pairs.rs | 35 +++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 src/problem/p2563_count_the_number_of_fair_pairs.rs diff --git a/src/problem/mod.rs b/src/problem/mod.rs index 3ada5bc..863cef1 100644 --- a/src/problem/mod.rs +++ b/src/problem/mod.rs @@ -607,3 +607,5 @@ mod p2537_count_the_number_of_good_subarrays; mod p2176_count_equal_and_divisible_pairs_in_an_array; mod p2364_count_number_of_bad_pairs; + +mod p2563_count_the_number_of_fair_pairs; diff --git a/src/problem/p2563_count_the_number_of_fair_pairs.rs b/src/problem/p2563_count_the_number_of_fair_pairs.rs new file mode 100644 index 0000000..edcb0d0 --- /dev/null +++ b/src/problem/p2563_count_the_number_of_fair_pairs.rs @@ -0,0 +1,35 @@ +/** + * [2563] Count the Number of Fair Pairs + */ +pub struct Solution {} + +// submission codes start here + +impl Solution { + pub fn count_fair_pairs(mut nums: Vec, lower: i32, upper: i32) -> i64 { + nums.sort_unstable(); + let mut result = 0; + + for i in 0..nums.len() { + let l = nums[0..i].partition_point(|&x| x + nums[i] < lower); + let r = nums[0..i].partition_point(|&x| x + nums[i] <= upper); + + result += (r - l); + } + + result as i64 + } +} + +// submission codes end + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_2563() { + assert_eq!(6, Solution::count_fair_pairs(vec![0, 1, 7, 4, 4, 5], 3, 6)); + assert_eq!(1, Solution::count_fair_pairs(vec![1, 7, 9, 2, 5], 11, 11)); + } +}