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 132)
127pub fn floor_sum_range_freq(l: i64, r: i64, a: i64, b: i64, m: u64, range: Range<i64>) -> i64 {
128 if range.start >= range.end {
129 return 0;
130 }
131 assert!(0 <= range.start && range.end <= m as i64);
132 let x1 = floor_sum_i64(l, r, a, b - range.start, m);
133 let x2 = floor_sum_i64(l, r, a, b - range.end, m);
134 x1 - x2
135}