https://atcoder.jp/contests/math-and-algorithm/tasks/abc139_d
をで割った余りと考えると、少しわかりやすいです。ならとしたときが最大です。と考えていくと簡単です。
// ModSum #![allow(non_snake_case)] //////////////////// library //////////////////// fn read<T: std::str::FromStr>() -> T { let mut line = String::new(); std::io::stdin().read_line(&mut line).ok(); line.trim().parse().ok().unwrap() } //////////////////// process //////////////////// fn f(N: usize) -> usize { N * (N - 1) / 2 } fn main() { let N = read(); println!("{}", f(N)) }