Function floor_sum_i64
Source pub fn floor_sum_i64(l: i64, r: i64, a: i64, b: i64, m: u64) -> i64
Expand description
Sum of Floor of Linear mod 2^64
$$\sum_{i=l}^{r-1}\left\lfloor\frac{a\times i+b}{m}\right\rfloor$$
crates/competitive/src/math/floor_sum.rs (
line 83)
78pub fn floor_sum_range_freq(l: i64, r: i64, a: i64, b: i64, m: u64, range: Range<i64>) -> i64 {
79 if range.start >= range.end {
80 return 0;
81 }
82 assert!(0 <= range.start && range.end <= m as i64);
83 let x1 = floor_sum_i64(l, r, a, b - range.start, m);
84 let x2 = floor_sum_i64(l, r, a, b - range.end, m);
85 x1 - x2
86}