[INFO] cloning repository https://github.com/taodaling/rustcp [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/taodaling/rustcp" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftaodaling%2Frustcp", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftaodaling%2Frustcp'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 64ef8dd5ce66925b3f9f892c9798654523e1c283 [INFO] testing taodaling/rustcp against beta-2022-04-10 for beta-1.61-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftaodaling%2Frustcp" "/workspace/builds/worker-0/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/taodaling/rustcp on toolchain beta-2022-04-10 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/taodaling/rustcp [INFO] finished tweaking git repo https://github.com/taodaling/rustcp [INFO] tweaked toml for git repo https://github.com/taodaling/rustcp written to /workspace/builds/worker-0/source/Cargo.toml [INFO] crate git repo https://github.com/taodaling/rustcp already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root: [INFO] [stderr] package: /workspace/builds/worker-0/source/contest/Cargo.toml [INFO] [stderr] workspace: /workspace/builds/worker-0/source/Cargo.toml [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:eaef2f80f755933c374d2ae5edccceec0c1312ceb8a4e0b6404e8ab76561e1e5" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] d868a28cc4a1e3639e435cbc24072b1d746e902e6740f3014cbfef81be5b22c4 [INFO] running `Command { std: "docker" "start" "-a" "d868a28cc4a1e3639e435cbc24072b1d746e902e6740f3014cbfef81be5b22c4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d868a28cc4a1e3639e435cbc24072b1d746e902e6740f3014cbfef81be5b22c4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d868a28cc4a1e3639e435cbc24072b1d746e902e6740f3014cbfef81be5b22c4", kill_on_drop: false }` [INFO] [stdout] d868a28cc4a1e3639e435cbc24072b1d746e902e6740f3014cbfef81be5b22c4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:eaef2f80f755933c374d2ae5edccceec0c1312ceb8a4e0b6404e8ab76561e1e5" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 33ef740d69cb4c36678d36a0b001e87a949bb3429255971d94c33ce5e4c3be8a [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "33ef740d69cb4c36678d36a0b001e87a949bb3429255971d94c33ce5e4c3be8a", kill_on_drop: false }` [INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root: [INFO] [stderr] package: /opt/rustwide/workdir/contest/Cargo.toml [INFO] [stderr] workspace: /opt/rustwide/workdir/Cargo.toml [INFO] [stderr] Compiling contest v0.1.0 (/opt/rustwide/workdir/contest) [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> contest/src/fast_input.rs:1:15 [INFO] [stdout] | [INFO] [stdout] 1 | use std::io::{self, BufRead, BufReader, Cursor}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num_gcd::gcd` [INFO] [stdout] --> contest/src/math.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | num_gcd::gcd, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num_float::float` [INFO] [stdout] --> contest/src/arithmetic.rs:1:13 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{num_float::float, num_number::FromNumber}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rng` [INFO] [stdout] --> contest/src/miller_rabin.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::rand::{rng, random}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Add` [INFO] [stdout] --> contest/src/pollard_rho.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::ops::Add; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `convolution_brute_force` [INFO] [stdout] --> contest/src/poly_ntt.rs:9:163 [INFO] [stdout] | [INFO] [stdout] 9 | ...ucture::Field, poly_common::{poly_extend, poly_length, convolution_brute_force, poly_trim}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `mi0` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_mtt.rs:17:6 [INFO] [stdout] | [INFO] [stdout] 17 | type mi0 = StaticModInt; [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case: `Mi0` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `mi1` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_mtt.rs:18:6 [INFO] [stdout] | [INFO] [stdout] 18 | type mi1 = StaticModInt; [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case: `Mi1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `mi2` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_mtt.rs:19:6 [INFO] [stdout] | [INFO] [stdout] 19 | type mi2 = StaticModInt; [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case: `Mi2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `cv0` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_mtt.rs:21:6 [INFO] [stdout] | [INFO] [stdout] 21 | type cv0 = ConvolutionNTT; [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `cv1` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_mtt.rs:22:6 [INFO] [stdout] | [INFO] [stdout] 22 | type cv1 = ConvolutionNTT; [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `cv2` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_mtt.rs:23:6 [INFO] [stdout] | [INFO] [stdout] 23 | type cv2 = ConvolutionNTT; [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ntt`, `poly::Poly` [INFO] [stdout] --> contest/src/poly_ntt_test.rs:1:68 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{static_modint::{StaticModInt, MF998244353}, poly_ntt::{ntt, ConvolutionNTT}, poly::Poly}; [INFO] [stdout] | ^^^ ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a `#[cfg(test)]` to the containing module [INFO] [stdout] --> contest/src/lib.rs:21:1 [INFO] [stdout] | [INFO] [stdout] 21 | pub mod poly_ntt_test; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `mi` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_ntt_test.rs:3:6 [INFO] [stdout] | [INFO] [stdout] 3 | type mi = StaticModInt; [INFO] [stdout] | ^^ help: convert the identifier to upper camel case: `Mi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `conv` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_ntt_test.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | type conv = ConvolutionNTT; [INFO] [stdout] | ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `mi` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_mtt_test.rs:3:6 [INFO] [stdout] | [INFO] [stdout] 3 | type mi = StaticModInt; [INFO] [stdout] | ^^ help: convert the identifier to upper camel case: `Mi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `conv` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_mtt_test.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | type conv = ConvolutionMTT; [INFO] [stdout] | ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num_number::FromNumber` [INFO] [stdout] --> contest/src/poly_common.rs:1:66 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{algebraic_structure::{Ring, Field}, math::log2_ceil, num_number::FromNumber}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> contest/src/poly_bf.rs:5:41 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct ConvolutionBF(PhantomData<(T)>); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 5 - pub struct ConvolutionBF(PhantomData<(T)>); [INFO] [stdout] 5 + pub struct ConvolutionBF(PhantomData); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Convolution`, `Poly` [INFO] [stdout] --> contest/src/poly_interpolation.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | poly::{Convolution, Poly}, [INFO] [stdout] | ^^^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Display`, `Pointer` [INFO] [stdout] --> contest/src/linear_feedback_shift_register.rs:1:64 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{ops::{Index}, cmp::max, collections::VecDeque, fmt::{Display, Pointer}}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug_discard`, `debug` [INFO] [stdout] --> contest/src/linear_recurrence.rs:3:33 [INFO] [stdout] | [INFO] [stdout] 3 | macros::{should, should_eq, debug_discard, debug}, [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `linear_recurrence::kth_term_of_linear_recurrence`, `macros::debug_discard`, `num_integer::Integer`, `num_number::FromNumber` [INFO] [stdout] --> contest/src/linear_recurrence_test.rs:1:13 [INFO] [stdout] | [INFO] [stdout] 1 | ...::{linear_recurrence::kth_term_of_linear_recurrence, static_modint::{StaticModInt, MF998244353}, num_number::FromNumber, poly_bf::ConvolutionBF, num_integer::Integer, macros::debug_discar... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a `#[cfg(test)]` to the containing module [INFO] [stdout] --> contest/src/lib.rs:30:1 [INFO] [stdout] | [INFO] [stdout] 30 | pub mod linear_recurrence_test; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::arithmetic::IdentityMul` [INFO] [stdout] --> contest/src/linear_recurrence_test.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::arithmetic::IdentityMul; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a `#[cfg(test)]` to the containing module [INFO] [stdout] --> contest/src/lib.rs:30:1 [INFO] [stdout] | [INFO] [stdout] 30 | pub mod linear_recurrence_test; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::arithmetic::IdentityAdd` [INFO] [stdout] --> contest/src/linear_recurrence_test.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::arithmetic::IdentityAdd; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a `#[cfg(test)]` to the containing module [INFO] [stdout] --> contest/src/lib.rs:30:1 [INFO] [stdout] | [INFO] [stdout] 30 | pub mod linear_recurrence_test; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `mi` should have an upper camel case name [INFO] [stdout] --> contest/src/linear_recurrence_test.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | type mi = StaticModInt; [INFO] [stdout] | ^^ help: convert the identifier to upper camel case: `Mi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `conv` should have an upper camel case name [INFO] [stdout] --> contest/src/linear_recurrence_test.rs:5:6 [INFO] [stdout] | [INFO] [stdout] 5 | type conv = ConvolutionBF; [INFO] [stdout] | ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `xorshift128p_state` should have an upper camel case name [INFO] [stdout] --> contest/src/rand.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | struct xorshift128p_state(u64, u64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Xorshift128pState` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Number` [INFO] [stdout] --> contest/src/num_real.rs:1:26 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{num_number::{Number, FromNumber}, num_concrete::Concrete}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `str::FromStr`, `string::ParseError` [INFO] [stdout] --> contest/src/modint.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{str::FromStr, string::ParseError, hash::Hash}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Error`, `num::ParseIntError`, `self`, `string::ParseError` [INFO] [stdout] --> contest/src/dynamic_modint.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | fmt::{self, Debug, Display, Error}, [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] 3 | marker::PhantomData, [INFO] [stdout] 4 | num::ParseIntError, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 7 | string::ParseError, hash::Hash, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `algebraic_structure::*` [INFO] [stdout] --> contest/src/dynamic_modint.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | algebraic_structure::*, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Error`, `num::ParseIntError`, `self`, `string::ParseError` [INFO] [stdout] --> contest/src/static_modint.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | fmt::{self, Debug, Display, Error}, [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] 3 | marker::PhantomData, [INFO] [stdout] 4 | num::ParseIntError, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 7 | string::ParseError, hash::Hash, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `algebraic_structure::*` [INFO] [stdout] --> contest/src/static_modint.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | algebraic_structure::*, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `max` [INFO] [stdout] --> contest/src/enumerate_prime.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use std::cmp::{max, min}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `IndexMut`, `ShlAssign`, `Shl` [INFO] [stdout] --> contest/src/bitset.rs:1:114 [INFO] [stdout] | [INFO] [stdout] 1 | ..., BitXor, BitAndAssign, BitOrAssign, BitXorAssign, Shl, ShlAssign, Index, IndexMut}}; [INFO] [stdout] | ^^^ ^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Pointer` [INFO] [stdout] --> contest/src/num_float.rs:2:27 [INFO] [stdout] | [INFO] [stdout] 2 | fmt::{Debug, Display, Pointer}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `float` should have an upper camel case name [INFO] [stdout] --> contest/src/num_float.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct float(f64); [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Float` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `debug` [INFO] [stdout] --> contest/src/binary_lifting_compress_on_tree.rs:3:62 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{algebraic_structure::Monoid, macros::{should_eq, debug}, arithmetic::{IdentityAdd, Nil}}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ops::Add` [INFO] [stdout] --> contest/src/persistent_segtree.rs:1:23 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{fmt::Debug, ops::Add}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Ordering` [INFO] [stdout] --> contest/src/lichao_segtree.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{cmp::{Ordering, max}, mem::swap}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> contest/src/lichao_segtree.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | / /// [INFO] [stdout] 77 | | /// a.0 x + a.1 = b.0 x + b.1 [INFO] [stdout] 78 | | /// => x = (b.1 - a.1) / (a.0 - b.0) [INFO] [stdout] 79 | | /// [INFO] [stdout] | |_________--^ [INFO] [stdout] | | [INFO] [stdout] | rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `take` [INFO] [stdout] --> contest/src/leftist_tree.rs:1:38 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{cmp::Ordering, mem::{swap, take, replace}}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `argmax_by`, `num_number::Number` [INFO] [stdout] --> contest/src/tree_diameter.rs:1:102 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{graph::{DiEdge, WeightEdge}, tree_depth::{tree_depth, tree_depth_weight}, math::{argmax, argmax_by}, num_number::Number, num_... [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `collections::HashMap` [INFO] [stdout] --> contest/src/collection.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::HashMap, mem::swap}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `random_permutation` [INFO] [stdout] --> contest/src/bipartite_match_kuhn.rs:3:15 [INFO] [stdout] | [INFO] [stdout] 3 | shuffle::{random_permutation, shuffle}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `debug` [INFO] [stdout] --> contest/src/macros.rs:44:14 [INFO] [stdout] | [INFO] [stdout] 44 | macro_rules! debug { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_macros)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `debug_discard` [INFO] [stdout] --> contest/src/macros.rs:58:14 [INFO] [stdout] | [INFO] [stdout] 58 | macro_rules! debug_discard { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `MergerImpl` [INFO] [stdout] --> contest/src/macros.rs:75:14 [INFO] [stdout] | [INFO] [stdout] 75 | macro_rules! MergerImpl { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `AddImpl` [INFO] [stdout] --> contest/src/macros.rs:86:14 [INFO] [stdout] | [INFO] [stdout] 86 | macro_rules! AddImpl { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `SubImpl` [INFO] [stdout] --> contest/src/macros.rs:99:14 [INFO] [stdout] | [INFO] [stdout] 99 | macro_rules! SubImpl { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `DivImpl` [INFO] [stdout] --> contest/src/macros.rs:112:14 [INFO] [stdout] | [INFO] [stdout] 112 | macro_rules! DivImpl { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `MulImpl` [INFO] [stdout] --> contest/src/macros.rs:125:14 [INFO] [stdout] | [INFO] [stdout] 125 | macro_rules! MulImpl { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MergerImpl` [INFO] [stdout] --> contest/src/macros.rs:168:16 [INFO] [stdout] | [INFO] [stdout] 168 | pub (crate)use MergerImpl; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AddImpl` [INFO] [stdout] --> contest/src/macros.rs:170:16 [INFO] [stdout] | [INFO] [stdout] 170 | pub (crate)use AddImpl; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SubImpl` [INFO] [stdout] --> contest/src/macros.rs:172:16 [INFO] [stdout] | [INFO] [stdout] 172 | pub (crate)use SubImpl; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MulImpl` [INFO] [stdout] --> contest/src/macros.rs:174:16 [INFO] [stdout] | [INFO] [stdout] 174 | pub (crate)use MulImpl; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DivImpl` [INFO] [stdout] --> contest/src/macros.rs:176:16 [INFO] [stdout] | [INFO] [stdout] 176 | pub (crate)use DivImpl; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `panic` [INFO] [stdout] --> contest/src/solver.rs:1:33 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{io::{Write, BufRead}, panic}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Add`, `Div`, `Mul`, `Sub` [INFO] [stdout] --> contest/src/solver.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | use std::ops::{Add, Sub, Mul, Div}; [INFO] [stdout] | ^^^ ^^^ ^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `poly::Poly` [INFO] [stdout] --> contest/src/solver.rs:3:62 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{fast_input::FastInput, poly_ntt::ConvolutionNTT, poly::Poly, static_modint::{StaticModInt, MF998244353}, num_number::FromNumb... [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::algebraic_structure::*` [INFO] [stdout] --> contest/src/solver.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::algebraic_structure::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `mi` should have an upper camel case name [INFO] [stdout] --> contest/src/solver.rs:8:6 [INFO] [stdout] | [INFO] [stdout] 8 | type mi = StaticModInt; [INFO] [stdout] | ^^ help: convert the identifier to upper camel case: `Mi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `conv` should have an upper camel case name [INFO] [stdout] --> contest/src/solver.rs:9:6 [INFO] [stdout] | [INFO] [stdout] 9 | type conv = ConvolutionNTT; [INFO] [stdout] | ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mem::swap` [INFO] [stdout] --> contest/src/stress_external_member.rs:1:33 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{io::{BufRead, Write}, mem::swap}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num_integer::Integer` [INFO] [stdout] --> contest/src/vector_binary_subset_convolution.rs:5:42 [INFO] [stdout] | [INFO] [stdout] 5 | vector_binary_convolution::FWTLayer, num_integer::Integer [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> contest/src/permutation.rs:38:13 [INFO] [stdout] | [INFO] [stdout] 32 | / loop { [INFO] [stdout] 33 | | j -= 1; [INFO] [stdout] 34 | | if s[j] < s[i] { [INFO] [stdout] 35 | | swap_element(s, i, j); [INFO] [stdout] 36 | | } [INFO] [stdout] 37 | | } [INFO] [stdout] | |_____________- any code following this expression is unreachable [INFO] [stdout] 38 | s[i + 1..n].reverse(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BufRead` [INFO] [stdout] --> contest/src/fast_input.rs:1:21 [INFO] [stdout] | [INFO] [stdout] 1 | use std::io::{self, BufRead, BufReader, Cursor}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Number` [INFO] [stdout] --> contest/src/pollard_rho.rs:7:25 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::num_number::{Number, FromNumber}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num_integer::Integer` [INFO] [stdout] --> contest/src/poly.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | num_integer::Integer, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Number` [INFO] [stdout] --> contest/src/num_integer_reverse.rs:2:37 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::num_number::{FromNumber, Number}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Number` [INFO] [stdout] --> contest/src/bipartite_minimum_weight_match.rs:6:18 [INFO] [stdout] | [INFO] [stdout] 6 | num_number::{Number, FromNumber}, num_concrete::Concrete, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num_number::Number` [INFO] [stdout] --> contest/src/bipartite_maximum_weight_match_km.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{num_number::Number, num_concrete::Concrete}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rhs` [INFO] [stdout] --> contest/src/arithmetic.rs:206:18 [INFO] [stdout] | [INFO] [stdout] 206 | fn mul(self, rhs: Nil) -> Self::Output { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rhs` [INFO] [stdout] --> contest/src/arithmetic.rs:213:18 [INFO] [stdout] | [INFO] [stdout] 213 | fn add(self, rhs: Nil) -> Self::Output { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rhs` [INFO] [stdout] --> contest/src/arithmetic.rs:220:18 [INFO] [stdout] | [INFO] [stdout] 220 | fn sub(self, rhs: Nil) -> Self::Output { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rhs` [INFO] [stdout] --> contest/src/arithmetic.rs:228:18 [INFO] [stdout] | [INFO] [stdout] 228 | fn div(self, rhs: Nil) -> Self::Output { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `other` [INFO] [stdout] --> contest/src/arithmetic.rs:233:18 [INFO] [stdout] | [INFO] [stdout] 233 | fn eq(&self, other: &Self) -> bool { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_other` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `other` [INFO] [stdout] --> contest/src/arithmetic.rs:239:27 [INFO] [stdout] | [INFO] [stdout] 239 | fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_other` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `t` is never read [INFO] [stdout] --> contest/src/pollard_rho.rs:78:13 [INFO] [stdout] | [INFO] [stdout] 78 | let mut t = T::ZERO; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rank` [INFO] [stdout] --> contest/src/poly.rs:118:13 [INFO] [stdout] | [INFO] [stdout] 118 | let rank = self.rank(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_rank` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 227 | IntegerImpl!(i8, i16, u8, i8); [INFO] [stdout] | ----------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 228 | IntegerImpl!(u8, i16, u8, i8); [INFO] [stdout] | ----------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 229 | IntegerImpl!(i16, i32, u16, i16); [INFO] [stdout] | -------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 230 | IntegerImpl!(u16, u32, u16, i16); [INFO] [stdout] | -------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 231 | IntegerImpl!(i32, i64, u32, i32); [INFO] [stdout] | -------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 232 | IntegerImpl!(u32, u64, u32, i32); [INFO] [stdout] | -------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 233 | IntegerImpl!(isize, isize, usize, isize); [INFO] [stdout] | ---------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 234 | IntegerImpl!(usize, usize, usize, isize); [INFO] [stdout] | ---------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 235 | IntegerImpl!(i64, i128, u64, i64); [INFO] [stdout] | --------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 236 | IntegerImpl!(u64, u128, u64, i64); [INFO] [stdout] | --------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 237 | IntegerImpl!(i128, i128, u128, i128); [INFO] [stdout] | ------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 238 | IntegerImpl!(u128, u128, u128, i128); [INFO] [stdout] | ------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> contest/src/range_kth_smallest_persistent_segtree.rs:65:14 [INFO] [stdout] | [INFO] [stdout] 65 | |i, a, b| b - a >= k, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> contest/src/range_tree.rs:89:13 [INFO] [stdout] | [INFO] [stdout] 89 | for i in 0..level { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> contest/src/cost_flow_augment_dijkstra.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | let n = self.g.len(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `test_id` [INFO] [stdout] --> contest/src/solver.rs:10:37 [INFO] [stdout] | [INFO] [stdout] 10 | pub unsafe fn solve_one(test_id: usize, fi: &mut FastInput, fo: &mut impl Write) { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_test_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `fi` [INFO] [stdout] --> contest/src/stress_external_member.rs:6:32 [INFO] [stdout] | [INFO] [stdout] 6 | pub unsafe fn brute_force(fi: &mut FastInput, fo: &mut impl Write) [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_fi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `fo` [INFO] [stdout] --> contest/src/stress_external_member.rs:6:57 [INFO] [stdout] | [INFO] [stdout] 6 | pub unsafe fn brute_force(fi: &mut FastInput, fo: &mut impl Write) [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_fo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rng` [INFO] [stdout] --> contest/src/stress_external_member.rs:12:22 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn generate_test(rng: &mut Rng, fo: &mut impl Write) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rng` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `fo` [INFO] [stdout] --> contest/src/stress_external_member.rs:12:37 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn generate_test(rng: &mut Rng, fo: &mut impl Write) { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_fo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> contest/src/vector_matrix.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 71 | let k = lhs.m; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/math.rs:133:32 [INFO] [stdout] | [INFO] [stdout] 133 | pub fn inverse_batch(mut data: &[T]) -> Vec { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/pollard_rho.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 80 | let mut c = random(n - T::ONE) + T::ONE; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly_fft.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | let mut tn = ::from(n); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly.rs:110:17 [INFO] [stdout] | [INFO] [stdout] 110 | let mut ans = self.exp0((n + 1) / 2); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly.rs:111:17 [INFO] [stdout] | [INFO] [stdout] 111 | let mut ln = ans.clone().ln(n); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly.rs:138:38 [INFO] [stdout] | [INFO] [stdout] 138 | pub fn downgrade_mod(self: Self, mut n: impl Iterator) -> Self { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly.rs:225:43 [INFO] [stdout] | [INFO] [stdout] 225 | pub fn convolution_delta(mut a: Self, mut b: Self) -> Self { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly.rs:228:13 [INFO] [stdout] | [INFO] [stdout] 228 | let mut res = C::convolution(a.0, b.0); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly.rs:281:22 [INFO] [stdout] | [INFO] [stdout] 281 | pub fn batch_mul(mut polys: &mut [Self]) -> Self { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly.rs:296:18 [INFO] [stdout] | [INFO] [stdout] 296 | fn into_iter(mut self) -> std::vec::IntoIter { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly_common.rs:8:30 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn poly_modular(mut p: Vec, len: usize) -> Vec { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly_interpolation.rs:19:13 [INFO] [stdout] | [INFO] [stdout] 19 | let mut res = Self { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/treap.rs:137:30 [INFO] [stdout] | [INFO] [stdout] 137 | pub fn modify(&mut self, mut id: usize, upd: U) { [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/link_cut_tree.rs:122:28 [INFO] [stdout] | [INFO] [stdout] 122 | pub fn init(&mut self, mut id: usize) { [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/general_graph_match.rs:139:24 [INFO] [stdout] | [INFO] [stdout] 139 | pub fn mate(&self, mut i: usize) -> Option { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/bipartite_maximum_weight_match_km.rs:60:17 [INFO] [stdout] | [INFO] [stdout] 60 | let mut x = queue[qs]; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/bipartite_maximum_weight_match_km.rs:67:21 [INFO] [stdout] | [INFO] [stdout] 67 | let mut tmp = row.left_label[x] + row.right_label[y] - row.table[x][y]; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/bipartite_maximum_weight_match_km.rs:123:13 [INFO] [stdout] | [INFO] [stdout] 123 | let mut pre_x = y_pre[end_y]; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/bipartite_maximum_weight_match_km.rs:124:13 [INFO] [stdout] | [INFO] [stdout] 124 | let mut pre_y = row.left_mate[pre_x]; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/macros.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | let mut $var $(: $t)? = $fi.read(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] ::: contest/src/solver.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | / input!{ [INFO] [stdout] 12 | | fi, [INFO] [stdout] 13 | | d: usize, [INFO] [stdout] 14 | | k: u64, [INFO] [stdout] 15 | | } [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/macros.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | let mut $var $(: $t)? = $fi.read(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] ::: contest/src/solver.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | / input!{ [INFO] [stdout] 12 | | fi, [INFO] [stdout] 13 | | d: usize, [INFO] [stdout] 14 | | k: u64, [INFO] [stdout] 15 | | } [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/solver.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | let mut c = c.iter().rev().map(|x| mi::zero() - *x).collect(); [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `mod2` should have an upper case name [INFO] [stdout] --> contest/src/poly_mtt.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | static mod2: i64 = M0 * M1; [INFO] [stdout] | ^^^^ help: convert the identifier to upper case: `MOD2` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `inv10` should have an upper case name [INFO] [stdout] --> contest/src/poly_mtt.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 29 | static inv10: i64 = 208783132; [INFO] [stdout] | ^^^^^ help: convert the identifier to upper case: `INV10` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `inv01` should have an upper case name [INFO] [stdout] --> contest/src/poly_mtt.rs:30:8 [INFO] [stdout] | [INFO] [stdout] 30 | static inv01: i64 = 554580198; [INFO] [stdout] | ^^^^^ help: convert the identifier to upper case: `INV01` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `inv012` should have an upper case name [INFO] [stdout] --> contest/src/poly_mtt.rs:31:8 [INFO] [stdout] | [INFO] [stdout] 31 | static inv012: i64 = 29562547; [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `INV012` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `p1inv10` should have an upper case name [INFO] [stdout] --> contest/src/poly_mtt.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 32 | static p1inv10: i64 = 208416582520653596; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `P1INV10` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `p0inv01` should have an upper case name [INFO] [stdout] --> contest/src/poly_mtt.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | static p0inv01: i64 = 260520730147305702; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `P0INV01` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `C` should have a snake case name [INFO] [stdout] --> contest/src/poly.rs:38:13 [INFO] [stdout] | [INFO] [stdout] 38 | let C = Self::inverse_internal(p.split_at(prev_mod).0); [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `c` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `C` should have a snake case name [INFO] [stdout] --> contest/src/poly.rs:39:13 [INFO] [stdout] | [INFO] [stdout] 39 | let C = poly_extend(C, proper_len); [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `A` should have a snake case name [INFO] [stdout] --> contest/src/poly.rs:40:13 [INFO] [stdout] | [INFO] [stdout] 40 | let A = p.to_owned(); [INFO] [stdout] | ^ help: convert the identifier to snake case: `a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `A` should have a snake case name [INFO] [stdout] --> contest/src/poly.rs:41:13 [INFO] [stdout] | [INFO] [stdout] 41 | let A = poly_extend(A, proper_len); [INFO] [stdout] | ^ help: convert the identifier to snake case: `a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `AC` should have a snake case name [INFO] [stdout] --> contest/src/poly.rs:43:17 [INFO] [stdout] | [INFO] [stdout] 43 | let mut AC = poly_extend(Self::convolution(A, C.clone()), m); [INFO] [stdout] | ^^ help: convert the identifier to snake case: `ac` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `singleton` should have an upper case name [INFO] [stdout] --> contest/src/rand.rs:51:16 [INFO] [stdout] | [INFO] [stdout] 51 | static mut singleton: Option = None; [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper case: `SINGLETON` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `singleton` should have an upper case name [INFO] [stdout] --> contest/src/dynamic_modint.rs:84:28 [INFO] [stdout] | [INFO] [stdout] 84 | static mut singleton: Modulus<$T> = Modulus { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper case: `SINGLETON` [INFO] [stdout] ... [INFO] [stdout] 96 | DynamicModulusFactoryImpl!(MF32, u32); [INFO] [stdout] | ------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `singleton` should have an upper case name [INFO] [stdout] --> contest/src/dynamic_modint.rs:84:28 [INFO] [stdout] | [INFO] [stdout] 84 | static mut singleton: Modulus<$T> = Modulus { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper case: `SINGLETON` [INFO] [stdout] ... [INFO] [stdout] 97 | DynamicModulusFactoryImpl!(MF64, u64); [INFO] [stdout] | ------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `phi` should have an upper case name [INFO] [stdout] --> contest/src/enumerate_prime.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | static phi: [usize; 10] = [ [INFO] [stdout] | ^^^ help: convert the identifier to upper case: `PHI` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree.rs:68:16 [INFO] [stdout] | [INFO] [stdout] 68 | pub fn new(L: usize, R: usize, f: impl Fn(usize) -> S) -> Self { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree.rs:68:26 [INFO] [stdout] | [INFO] [stdout] 68 | pub fn new(L: usize, R: usize, f: impl Fn(usize) -> S) -> Self { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree.rs:106:43 [INFO] [stdout] | [INFO] [stdout] 106 | fn update_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize, u: U) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree.rs:106:53 [INFO] [stdout] | [INFO] [stdout] 106 | fn update_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize, u: U) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree.rs:121:42 [INFO] [stdout] | [INFO] [stdout] 121 | fn query_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree.rs:121:52 [INFO] [stdout] | [INFO] [stdout] 121 | fn query_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:200:39 [INFO] [stdout] | [INFO] [stdout] 200 | pub fn query_sum(self: &mut Self, L: usize, R: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:200:49 [INFO] [stdout] | [INFO] [stdout] 200 | pub fn query_sum(self: &mut Self, L: usize, R: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:204:52 [INFO] [stdout] | [INFO] [stdout] 204 | fn query_sum_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:204:62 [INFO] [stdout] | [INFO] [stdout] 204 | fn query_sum_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:217:39 [INFO] [stdout] | [INFO] [stdout] 217 | pub fn query_max(self: &mut Self, L: usize, R: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:217:49 [INFO] [stdout] | [INFO] [stdout] 217 | pub fn query_max(self: &mut Self, L: usize, R: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:221:52 [INFO] [stdout] | [INFO] [stdout] 221 | fn query_max_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:221:62 [INFO] [stdout] | [INFO] [stdout] 221 | fn query_max_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:235:39 [INFO] [stdout] | [INFO] [stdout] 235 | pub fn query_min(self: &mut Self, L: usize, R: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:235:49 [INFO] [stdout] | [INFO] [stdout] 235 | pub fn query_min(self: &mut Self, L: usize, R: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:239:52 [INFO] [stdout] | [INFO] [stdout] 239 | fn query_min_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:239:62 [INFO] [stdout] | [INFO] [stdout] 239 | fn query_min_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:253:40 [INFO] [stdout] | [INFO] [stdout] 253 | pub fn update_min(self: &mut Self, L: usize, R: usize, u: T) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:253:50 [INFO] [stdout] | [INFO] [stdout] 253 | pub fn update_min(self: &mut Self, L: usize, R: usize, u: T) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:261:9 [INFO] [stdout] | [INFO] [stdout] 261 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:262:9 [INFO] [stdout] | [INFO] [stdout] 262 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:286:40 [INFO] [stdout] | [INFO] [stdout] 286 | pub fn update_max(self: &mut Self, L: usize, R: usize, u: T) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:286:50 [INFO] [stdout] | [INFO] [stdout] 286 | pub fn update_max(self: &mut Self, L: usize, R: usize, u: T) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:294:9 [INFO] [stdout] | [INFO] [stdout] 294 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:295:9 [INFO] [stdout] | [INFO] [stdout] 295 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:319:42 [INFO] [stdout] | [INFO] [stdout] 319 | pub fn update_value(self: &mut Self, L: usize, R: usize, u: T) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:319:52 [INFO] [stdout] | [INFO] [stdout] 319 | pub fn update_value(self: &mut Self, L: usize, R: usize, u: T) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:327:9 [INFO] [stdout] | [INFO] [stdout] 327 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:328:9 [INFO] [stdout] | [INFO] [stdout] 328 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `L` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `R` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `L` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `R` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:56:16 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn new(L: usize, R: usize, nil_sum: S) -> Self { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:56:26 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn new(L: usize, R: usize, nil_sum: S) -> Self { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:110:38 [INFO] [stdout] | [INFO] [stdout] 110 | fn query_rec(&self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:110:48 [INFO] [stdout] | [INFO] [stdout] 110 | fn query_rec(&self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:249:9 [INFO] [stdout] | [INFO] [stdout] 249 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:250:9 [INFO] [stdout] | [INFO] [stdout] 250 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:283:9 [INFO] [stdout] | [INFO] [stdout] 283 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:284:9 [INFO] [stdout] | [INFO] [stdout] 284 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/lichao_segtree.rs:84:30 [INFO] [stdout] | [INFO] [stdout] 84 | pub fn insert(&mut self, L: T, R: T, a: T, b: T) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/lichao_segtree.rs:84:36 [INFO] [stdout] | [INFO] [stdout] 84 | pub fn insert(&mut self, L: T, R: T, a: T, b: T) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/lichao_segtree.rs:85:13 [INFO] [stdout] | [INFO] [stdout] 85 | let L = first_true(0, self.1.len() - 1, |&x| self.1[x] >= L); [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/lichao_segtree.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | let R = last_true(0, self.1.len() - 1, |&x| self.1[x] <= R); [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/lichao_segtree.rs:87:22 [INFO] [stdout] | [INFO] [stdout] 87 | if let (Some(L), Some(R)) = (L, R) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/lichao_segtree.rs:87:31 [INFO] [stdout] | [INFO] [stdout] 87 | if let (Some(L), Some(R)) = (L, R) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/lichao_segtree.rs:95:9 [INFO] [stdout] | [INFO] [stdout] 95 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/lichao_segtree.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 96 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `leftSubset` should have a snake case name [INFO] [stdout] --> contest/src/maximum_independent_set.rs:62:13 [INFO] [stdout] | [INFO] [stdout] 62 | let leftSubset = subsets[(mask & (!nearby[i])) as usize]; [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `left_subset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `S` should have a snake case name [INFO] [stdout] --> contest/src/bipartite_maximum_weight_match_km.rs:50:13 [INFO] [stdout] | [INFO] [stdout] 50 | let mut S = vec![false; n]; [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `T` should have a snake case name [INFO] [stdout] --> contest/src/bipartite_maximum_weight_match_km.rs:51:13 [INFO] [stdout] | [INFO] [stdout] 51 | let mut T = vec![false; n]; [INFO] [stdout] | ^ help: convert the identifier to snake case: `t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> contest/src/solver.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | writeln!(fo, "{}", kth); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `T` should have a snake case name [INFO] [stdout] --> contest/src/vector_binary_subset_convolution.rs:20:13 [INFO] [stdout] | [INFO] [stdout] 20 | let mut T = vec![zero; n]; [INFO] [stdout] | ^ help: convert the identifier to snake case: `t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 198 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `stress::stress` [INFO] [stdout] --> contest/src/main.rs:3:36 [INFO] [stdout] | [INFO] [stdout] 3 | use contest::{solver::solve_multi, stress::stress}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `run_in_new_thread` [INFO] [stdout] --> contest/src/main.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | unsafe fn run_in_new_thread() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> contest/src/main.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | / thread::Builder::new() [INFO] [stdout] 17 | | .stack_size(256 << 20) [INFO] [stdout] 18 | | .spawn(|| {run_in_current_thread();}) [INFO] [stdout] 19 | | .unwrap() [INFO] [stdout] 20 | | .join(); [INFO] [stdout] | |____________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 5.62s [INFO] running `Command { std: "docker" "inspect" "33ef740d69cb4c36678d36a0b001e87a949bb3429255971d94c33ce5e4c3be8a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "33ef740d69cb4c36678d36a0b001e87a949bb3429255971d94c33ce5e4c3be8a", kill_on_drop: false }` [INFO] [stdout] 33ef740d69cb4c36678d36a0b001e87a949bb3429255971d94c33ce5e4c3be8a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:eaef2f80f755933c374d2ae5edccceec0c1312ceb8a4e0b6404e8ab76561e1e5" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] ead1006636e761f4311d4dbfbf6fc5f16696fc7490fc7c64346c7cfeb9660514 [INFO] running `Command { std: "docker" "start" "-a" "ead1006636e761f4311d4dbfbf6fc5f16696fc7490fc7c64346c7cfeb9660514", kill_on_drop: false }` [INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root: [INFO] [stderr] package: /opt/rustwide/workdir/contest/Cargo.toml [INFO] [stderr] workspace: /opt/rustwide/workdir/Cargo.toml [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> contest/src/fast_input.rs:1:15 [INFO] [stdout] | [INFO] [stdout] 1 | use std::io::{self, BufRead, BufReader, Cursor}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num_gcd::gcd` [INFO] [stdout] --> contest/src/math.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | num_gcd::gcd, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num_float::float` [INFO] [stdout] --> contest/src/arithmetic.rs:1:13 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{num_float::float, num_number::FromNumber}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rng` [INFO] [stdout] --> contest/src/miller_rabin.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::rand::{rng, random}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Add` [INFO] [stdout] --> contest/src/pollard_rho.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::ops::Add; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `convolution_brute_force` [INFO] [stdout] --> contest/src/poly_ntt.rs:9:163 [INFO] [stdout] | [INFO] [stdout] 9 | ...ucture::Field, poly_common::{poly_extend, poly_length, convolution_brute_force, poly_trim}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `mi0` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_mtt.rs:17:6 [INFO] [stdout] | [INFO] [stdout] 17 | type mi0 = StaticModInt; [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case: `Mi0` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `mi1` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_mtt.rs:18:6 [INFO] [stdout] | [INFO] [stdout] 18 | type mi1 = StaticModInt; [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case: `Mi1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `mi2` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_mtt.rs:19:6 [INFO] [stdout] | [INFO] [stdout] 19 | type mi2 = StaticModInt; [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case: `Mi2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `cv0` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_mtt.rs:21:6 [INFO] [stdout] | [INFO] [stdout] 21 | type cv0 = ConvolutionNTT; [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `cv1` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_mtt.rs:22:6 [INFO] [stdout] | [INFO] [stdout] 22 | type cv1 = ConvolutionNTT; [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `cv2` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_mtt.rs:23:6 [INFO] [stdout] | [INFO] [stdout] 23 | type cv2 = ConvolutionNTT; [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ntt`, `poly::Poly` [INFO] [stdout] --> contest/src/poly_ntt_test.rs:1:68 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{static_modint::{StaticModInt, MF998244353}, poly_ntt::{ntt, ConvolutionNTT}, poly::Poly}; [INFO] [stdout] | ^^^ ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a `#[cfg(test)]` to the containing module [INFO] [stdout] --> contest/src/lib.rs:21:1 [INFO] [stdout] | [INFO] [stdout] 21 | pub mod poly_ntt_test; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `mi` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_ntt_test.rs:3:6 [INFO] [stdout] | [INFO] [stdout] 3 | type mi = StaticModInt; [INFO] [stdout] | ^^ help: convert the identifier to upper camel case: `Mi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `conv` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_ntt_test.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | type conv = ConvolutionNTT; [INFO] [stdout] | ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `mi` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_mtt_test.rs:3:6 [INFO] [stdout] | [INFO] [stdout] 3 | type mi = StaticModInt; [INFO] [stdout] | ^^ help: convert the identifier to upper camel case: `Mi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `conv` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_mtt_test.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | type conv = ConvolutionMTT; [INFO] [stdout] | ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num_number::FromNumber` [INFO] [stdout] --> contest/src/poly_common.rs:1:66 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{algebraic_structure::{Ring, Field}, math::log2_ceil, num_number::FromNumber}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> contest/src/poly_bf.rs:5:41 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct ConvolutionBF(PhantomData<(T)>); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 5 - pub struct ConvolutionBF(PhantomData<(T)>); [INFO] [stdout] 5 + pub struct ConvolutionBF(PhantomData); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Convolution`, `Poly` [INFO] [stdout] --> contest/src/poly_interpolation.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | poly::{Convolution, Poly}, [INFO] [stdout] | ^^^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Display`, `Pointer` [INFO] [stdout] --> contest/src/linear_feedback_shift_register.rs:1:64 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{ops::{Index}, cmp::max, collections::VecDeque, fmt::{Display, Pointer}}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug_discard`, `debug` [INFO] [stdout] --> contest/src/linear_recurrence.rs:3:33 [INFO] [stdout] | [INFO] [stdout] 3 | macros::{should, should_eq, debug_discard, debug}, [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `linear_recurrence::kth_term_of_linear_recurrence`, `macros::debug_discard`, `num_integer::Integer`, `num_number::FromNumber` [INFO] [stdout] --> contest/src/linear_recurrence_test.rs:1:13 [INFO] [stdout] | [INFO] [stdout] 1 | ...::{linear_recurrence::kth_term_of_linear_recurrence, static_modint::{StaticModInt, MF998244353}, num_number::FromNumber, poly_bf::ConvolutionBF, num_integer::Integer, macros::debug_discar... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a `#[cfg(test)]` to the containing module [INFO] [stdout] --> contest/src/lib.rs:30:1 [INFO] [stdout] | [INFO] [stdout] 30 | pub mod linear_recurrence_test; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::arithmetic::IdentityMul` [INFO] [stdout] --> contest/src/linear_recurrence_test.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::arithmetic::IdentityMul; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a `#[cfg(test)]` to the containing module [INFO] [stdout] --> contest/src/lib.rs:30:1 [INFO] [stdout] | [INFO] [stdout] 30 | pub mod linear_recurrence_test; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::arithmetic::IdentityAdd` [INFO] [stdout] --> contest/src/linear_recurrence_test.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::arithmetic::IdentityAdd; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a `#[cfg(test)]` to the containing module [INFO] [stdout] --> contest/src/lib.rs:30:1 [INFO] [stdout] | [INFO] [stdout] 30 | pub mod linear_recurrence_test; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `mi` should have an upper camel case name [INFO] [stdout] --> contest/src/linear_recurrence_test.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | type mi = StaticModInt; [INFO] [stdout] | ^^ help: convert the identifier to upper camel case: `Mi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `conv` should have an upper camel case name [INFO] [stdout] --> contest/src/linear_recurrence_test.rs:5:6 [INFO] [stdout] | [INFO] [stdout] 5 | type conv = ConvolutionBF; [INFO] [stdout] | ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `xorshift128p_state` should have an upper camel case name [INFO] [stdout] --> contest/src/rand.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | struct xorshift128p_state(u64, u64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Xorshift128pState` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Number` [INFO] [stdout] --> contest/src/num_real.rs:1:26 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{num_number::{Number, FromNumber}, num_concrete::Concrete}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `str::FromStr`, `string::ParseError` [INFO] [stdout] --> contest/src/modint.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{str::FromStr, string::ParseError, hash::Hash}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Error`, `num::ParseIntError`, `self`, `string::ParseError` [INFO] [stdout] --> contest/src/dynamic_modint.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | fmt::{self, Debug, Display, Error}, [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] 3 | marker::PhantomData, [INFO] [stdout] 4 | num::ParseIntError, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 7 | string::ParseError, hash::Hash, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `algebraic_structure::*` [INFO] [stdout] --> contest/src/dynamic_modint.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | algebraic_structure::*, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Error`, `num::ParseIntError`, `self`, `string::ParseError` [INFO] [stdout] --> contest/src/static_modint.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | fmt::{self, Debug, Display, Error}, [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] 3 | marker::PhantomData, [INFO] [stdout] 4 | num::ParseIntError, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 7 | string::ParseError, hash::Hash, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `algebraic_structure::*` [INFO] [stdout] --> contest/src/static_modint.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | algebraic_structure::*, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `max` [INFO] [stdout] --> contest/src/enumerate_prime.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use std::cmp::{max, min}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `IndexMut`, `ShlAssign`, `Shl` [INFO] [stdout] --> contest/src/bitset.rs:1:114 [INFO] [stdout] | [INFO] [stdout] 1 | ..., BitXor, BitAndAssign, BitOrAssign, BitXorAssign, Shl, ShlAssign, Index, IndexMut}}; [INFO] [stdout] | ^^^ ^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Pointer` [INFO] [stdout] --> contest/src/num_float.rs:2:27 [INFO] [stdout] | [INFO] [stdout] 2 | fmt::{Debug, Display, Pointer}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `float` should have an upper camel case name [INFO] [stdout] --> contest/src/num_float.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct float(f64); [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Float` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `debug` [INFO] [stdout] --> contest/src/binary_lifting_compress_on_tree.rs:3:62 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{algebraic_structure::Monoid, macros::{should_eq, debug}, arithmetic::{IdentityAdd, Nil}}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ops::Add` [INFO] [stdout] --> contest/src/persistent_segtree.rs:1:23 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{fmt::Debug, ops::Add}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Ordering` [INFO] [stdout] --> contest/src/lichao_segtree.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{cmp::{Ordering, max}, mem::swap}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> contest/src/lichao_segtree.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | / /// [INFO] [stdout] 77 | | /// a.0 x + a.1 = b.0 x + b.1 [INFO] [stdout] 78 | | /// => x = (b.1 - a.1) / (a.0 - b.0) [INFO] [stdout] 79 | | /// [INFO] [stdout] | |_________--^ [INFO] [stdout] | | [INFO] [stdout] | rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `take` [INFO] [stdout] --> contest/src/leftist_tree.rs:1:38 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{cmp::Ordering, mem::{swap, take, replace}}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `argmax_by`, `num_number::Number` [INFO] [stdout] --> contest/src/tree_diameter.rs:1:102 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{graph::{DiEdge, WeightEdge}, tree_depth::{tree_depth, tree_depth_weight}, math::{argmax, argmax_by}, num_number::Number, num_... [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `collections::HashMap` [INFO] [stdout] --> contest/src/collection.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::HashMap, mem::swap}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `random_permutation` [INFO] [stdout] --> contest/src/bipartite_match_kuhn.rs:3:15 [INFO] [stdout] | [INFO] [stdout] 3 | shuffle::{random_permutation, shuffle}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `debug` [INFO] [stdout] --> contest/src/macros.rs:44:14 [INFO] [stdout] | [INFO] [stdout] 44 | macro_rules! debug { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_macros)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `debug_discard` [INFO] [stdout] --> contest/src/macros.rs:58:14 [INFO] [stdout] | [INFO] [stdout] 58 | macro_rules! debug_discard { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `MergerImpl` [INFO] [stdout] --> contest/src/macros.rs:75:14 [INFO] [stdout] | [INFO] [stdout] 75 | macro_rules! MergerImpl { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `AddImpl` [INFO] [stdout] --> contest/src/macros.rs:86:14 [INFO] [stdout] | [INFO] [stdout] 86 | macro_rules! AddImpl { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `SubImpl` [INFO] [stdout] --> contest/src/macros.rs:99:14 [INFO] [stdout] | [INFO] [stdout] 99 | macro_rules! SubImpl { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `DivImpl` [INFO] [stdout] --> contest/src/macros.rs:112:14 [INFO] [stdout] | [INFO] [stdout] 112 | macro_rules! DivImpl { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `MulImpl` [INFO] [stdout] --> contest/src/macros.rs:125:14 [INFO] [stdout] | [INFO] [stdout] 125 | macro_rules! MulImpl { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MergerImpl` [INFO] [stdout] --> contest/src/macros.rs:168:16 [INFO] [stdout] | [INFO] [stdout] 168 | pub (crate)use MergerImpl; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AddImpl` [INFO] [stdout] --> contest/src/macros.rs:170:16 [INFO] [stdout] | [INFO] [stdout] 170 | pub (crate)use AddImpl; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SubImpl` [INFO] [stdout] --> contest/src/macros.rs:172:16 [INFO] [stdout] | [INFO] [stdout] 172 | pub (crate)use SubImpl; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MulImpl` [INFO] [stdout] --> contest/src/macros.rs:174:16 [INFO] [stdout] | [INFO] [stdout] 174 | pub (crate)use MulImpl; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DivImpl` [INFO] [stdout] --> contest/src/macros.rs:176:16 [INFO] [stdout] | [INFO] [stdout] 176 | pub (crate)use DivImpl; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `panic` [INFO] [stdout] --> contest/src/solver.rs:1:33 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{io::{Write, BufRead}, panic}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Add`, `Div`, `Mul`, `Sub` [INFO] [stdout] --> contest/src/solver.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | use std::ops::{Add, Sub, Mul, Div}; [INFO] [stdout] | ^^^ ^^^ ^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `poly::Poly` [INFO] [stdout] --> contest/src/solver.rs:3:62 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{fast_input::FastInput, poly_ntt::ConvolutionNTT, poly::Poly, static_modint::{StaticModInt, MF998244353}, num_number::FromNumb... [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::algebraic_structure::*` [INFO] [stdout] --> contest/src/solver.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::algebraic_structure::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `mi` should have an upper camel case name [INFO] [stdout] --> contest/src/solver.rs:8:6 [INFO] [stdout] | [INFO] [stdout] 8 | type mi = StaticModInt; [INFO] [stdout] | ^^ help: convert the identifier to upper camel case: `Mi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `conv` should have an upper camel case name [INFO] [stdout] --> contest/src/solver.rs:9:6 [INFO] [stdout] | [INFO] [stdout] 9 | type conv = ConvolutionNTT; [INFO] [stdout] | ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mem::swap` [INFO] [stdout] --> contest/src/stress_external_member.rs:1:33 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{io::{BufRead, Write}, mem::swap}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num_integer::Integer` [INFO] [stdout] --> contest/src/vector_binary_subset_convolution.rs:5:42 [INFO] [stdout] | [INFO] [stdout] 5 | vector_binary_convolution::FWTLayer, num_integer::Integer [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> contest/src/permutation.rs:38:13 [INFO] [stdout] | [INFO] [stdout] 32 | / loop { [INFO] [stdout] 33 | | j -= 1; [INFO] [stdout] 34 | | if s[j] < s[i] { [INFO] [stdout] 35 | | swap_element(s, i, j); [INFO] [stdout] 36 | | } [INFO] [stdout] 37 | | } [INFO] [stdout] | |_____________- any code following this expression is unreachable [INFO] [stdout] 38 | s[i + 1..n].reverse(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BufRead` [INFO] [stdout] --> contest/src/fast_input.rs:1:21 [INFO] [stdout] | [INFO] [stdout] 1 | use std::io::{self, BufRead, BufReader, Cursor}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Number` [INFO] [stdout] --> contest/src/pollard_rho.rs:7:25 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::num_number::{Number, FromNumber}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num_integer::Integer` [INFO] [stdout] --> contest/src/poly.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | num_integer::Integer, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Number` [INFO] [stdout] --> contest/src/num_integer_reverse.rs:2:37 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::num_number::{FromNumber, Number}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Number` [INFO] [stdout] --> contest/src/bipartite_minimum_weight_match.rs:6:18 [INFO] [stdout] | [INFO] [stdout] 6 | num_number::{Number, FromNumber}, num_concrete::Concrete, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num_number::Number` [INFO] [stdout] --> contest/src/bipartite_maximum_weight_match_km.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{num_number::Number, num_concrete::Concrete}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rhs` [INFO] [stdout] --> contest/src/arithmetic.rs:206:18 [INFO] [stdout] | [INFO] [stdout] 206 | fn mul(self, rhs: Nil) -> Self::Output { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rhs` [INFO] [stdout] --> contest/src/arithmetic.rs:213:18 [INFO] [stdout] | [INFO] [stdout] 213 | fn add(self, rhs: Nil) -> Self::Output { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rhs` [INFO] [stdout] --> contest/src/arithmetic.rs:220:18 [INFO] [stdout] | [INFO] [stdout] 220 | fn sub(self, rhs: Nil) -> Self::Output { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rhs` [INFO] [stdout] --> contest/src/arithmetic.rs:228:18 [INFO] [stdout] | [INFO] [stdout] 228 | fn div(self, rhs: Nil) -> Self::Output { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `other` [INFO] [stdout] --> contest/src/arithmetic.rs:233:18 [INFO] [stdout] | [INFO] [stdout] 233 | fn eq(&self, other: &Self) -> bool { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_other` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `other` [INFO] [stdout] --> contest/src/arithmetic.rs:239:27 [INFO] [stdout] | [INFO] [stdout] 239 | fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_other` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `t` is never read [INFO] [stdout] --> contest/src/pollard_rho.rs:78:13 [INFO] [stdout] | [INFO] [stdout] 78 | let mut t = T::ZERO; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rank` [INFO] [stdout] --> contest/src/poly.rs:118:13 [INFO] [stdout] | [INFO] [stdout] 118 | let rank = self.rank(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_rank` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 227 | IntegerImpl!(i8, i16, u8, i8); [INFO] [stdout] | ----------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 228 | IntegerImpl!(u8, i16, u8, i8); [INFO] [stdout] | ----------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 229 | IntegerImpl!(i16, i32, u16, i16); [INFO] [stdout] | -------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 230 | IntegerImpl!(u16, u32, u16, i16); [INFO] [stdout] | -------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 231 | IntegerImpl!(i32, i64, u32, i32); [INFO] [stdout] | -------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 232 | IntegerImpl!(u32, u64, u32, i32); [INFO] [stdout] | -------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 233 | IntegerImpl!(isize, isize, usize, isize); [INFO] [stdout] | ---------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 234 | IntegerImpl!(usize, usize, usize, isize); [INFO] [stdout] | ---------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 235 | IntegerImpl!(i64, i128, u64, i64); [INFO] [stdout] | --------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 236 | IntegerImpl!(u64, u128, u64, i64); [INFO] [stdout] | --------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 237 | IntegerImpl!(i128, i128, u128, i128); [INFO] [stdout] | ------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 238 | IntegerImpl!(u128, u128, u128, i128); [INFO] [stdout] | ------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> contest/src/range_kth_smallest_persistent_segtree.rs:65:14 [INFO] [stdout] | [INFO] [stdout] 65 | |i, a, b| b - a >= k, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> contest/src/range_tree.rs:89:13 [INFO] [stdout] | [INFO] [stdout] 89 | for i in 0..level { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> contest/src/cost_flow_augment_dijkstra.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | let n = self.g.len(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `test_id` [INFO] [stdout] --> contest/src/solver.rs:10:37 [INFO] [stdout] | [INFO] [stdout] 10 | pub unsafe fn solve_one(test_id: usize, fi: &mut FastInput, fo: &mut impl Write) { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_test_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `fi` [INFO] [stdout] --> contest/src/stress_external_member.rs:6:32 [INFO] [stdout] | [INFO] [stdout] 6 | pub unsafe fn brute_force(fi: &mut FastInput, fo: &mut impl Write) [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_fi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `fo` [INFO] [stdout] --> contest/src/stress_external_member.rs:6:57 [INFO] [stdout] | [INFO] [stdout] 6 | pub unsafe fn brute_force(fi: &mut FastInput, fo: &mut impl Write) [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_fo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rng` [INFO] [stdout] --> contest/src/stress_external_member.rs:12:22 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn generate_test(rng: &mut Rng, fo: &mut impl Write) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rng` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `fo` [INFO] [stdout] --> contest/src/stress_external_member.rs:12:37 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn generate_test(rng: &mut Rng, fo: &mut impl Write) { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_fo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> contest/src/vector_matrix.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 71 | let k = lhs.m; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/math.rs:133:32 [INFO] [stdout] | [INFO] [stdout] 133 | pub fn inverse_batch(mut data: &[T]) -> Vec { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/pollard_rho.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 80 | let mut c = random(n - T::ONE) + T::ONE; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly_fft.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | let mut tn = ::from(n); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly.rs:110:17 [INFO] [stdout] | [INFO] [stdout] 110 | let mut ans = self.exp0((n + 1) / 2); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly.rs:111:17 [INFO] [stdout] | [INFO] [stdout] 111 | let mut ln = ans.clone().ln(n); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly.rs:138:38 [INFO] [stdout] | [INFO] [stdout] 138 | pub fn downgrade_mod(self: Self, mut n: impl Iterator) -> Self { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly.rs:225:43 [INFO] [stdout] | [INFO] [stdout] 225 | pub fn convolution_delta(mut a: Self, mut b: Self) -> Self { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly.rs:228:13 [INFO] [stdout] | [INFO] [stdout] 228 | let mut res = C::convolution(a.0, b.0); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly.rs:281:22 [INFO] [stdout] | [INFO] [stdout] 281 | pub fn batch_mul(mut polys: &mut [Self]) -> Self { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly.rs:296:18 [INFO] [stdout] | [INFO] [stdout] 296 | fn into_iter(mut self) -> std::vec::IntoIter { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly_common.rs:8:30 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn poly_modular(mut p: Vec, len: usize) -> Vec { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly_interpolation.rs:19:13 [INFO] [stdout] | [INFO] [stdout] 19 | let mut res = Self { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/treap.rs:137:30 [INFO] [stdout] | [INFO] [stdout] 137 | pub fn modify(&mut self, mut id: usize, upd: U) { [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/link_cut_tree.rs:122:28 [INFO] [stdout] | [INFO] [stdout] 122 | pub fn init(&mut self, mut id: usize) { [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/general_graph_match.rs:139:24 [INFO] [stdout] | [INFO] [stdout] 139 | pub fn mate(&self, mut i: usize) -> Option { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/bipartite_maximum_weight_match_km.rs:60:17 [INFO] [stdout] | [INFO] [stdout] 60 | let mut x = queue[qs]; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/bipartite_maximum_weight_match_km.rs:67:21 [INFO] [stdout] | [INFO] [stdout] 67 | let mut tmp = row.left_label[x] + row.right_label[y] - row.table[x][y]; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/bipartite_maximum_weight_match_km.rs:123:13 [INFO] [stdout] | [INFO] [stdout] 123 | let mut pre_x = y_pre[end_y]; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/bipartite_maximum_weight_match_km.rs:124:13 [INFO] [stdout] | [INFO] [stdout] 124 | let mut pre_y = row.left_mate[pre_x]; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/macros.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | let mut $var $(: $t)? = $fi.read(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] ::: contest/src/solver.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | / input!{ [INFO] [stdout] 12 | | fi, [INFO] [stdout] 13 | | d: usize, [INFO] [stdout] 14 | | k: u64, [INFO] [stdout] 15 | | } [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/macros.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | let mut $var $(: $t)? = $fi.read(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] ::: contest/src/solver.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | / input!{ [INFO] [stdout] 12 | | fi, [INFO] [stdout] 13 | | d: usize, [INFO] [stdout] 14 | | k: u64, [INFO] [stdout] 15 | | } [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/solver.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | let mut c = c.iter().rev().map(|x| mi::zero() - *x).collect(); [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `mod2` should have an upper case name [INFO] [stdout] --> contest/src/poly_mtt.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | static mod2: i64 = M0 * M1; [INFO] [stdout] | ^^^^ help: convert the identifier to upper case: `MOD2` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `inv10` should have an upper case name [INFO] [stdout] --> contest/src/poly_mtt.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 29 | static inv10: i64 = 208783132; [INFO] [stdout] | ^^^^^ help: convert the identifier to upper case: `INV10` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `inv01` should have an upper case name [INFO] [stdout] --> contest/src/poly_mtt.rs:30:8 [INFO] [stdout] | [INFO] [stdout] 30 | static inv01: i64 = 554580198; [INFO] [stdout] | ^^^^^ help: convert the identifier to upper case: `INV01` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `inv012` should have an upper case name [INFO] [stdout] --> contest/src/poly_mtt.rs:31:8 [INFO] [stdout] | [INFO] [stdout] 31 | static inv012: i64 = 29562547; [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `INV012` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `p1inv10` should have an upper case name [INFO] [stdout] --> contest/src/poly_mtt.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 32 | static p1inv10: i64 = 208416582520653596; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `P1INV10` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `p0inv01` should have an upper case name [INFO] [stdout] --> contest/src/poly_mtt.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | static p0inv01: i64 = 260520730147305702; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `P0INV01` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `C` should have a snake case name [INFO] [stdout] --> contest/src/poly.rs:38:13 [INFO] [stdout] | [INFO] [stdout] 38 | let C = Self::inverse_internal(p.split_at(prev_mod).0); [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `c` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `C` should have a snake case name [INFO] [stdout] --> contest/src/poly.rs:39:13 [INFO] [stdout] | [INFO] [stdout] 39 | let C = poly_extend(C, proper_len); [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `A` should have a snake case name [INFO] [stdout] --> contest/src/poly.rs:40:13 [INFO] [stdout] | [INFO] [stdout] 40 | let A = p.to_owned(); [INFO] [stdout] | ^ help: convert the identifier to snake case: `a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `A` should have a snake case name [INFO] [stdout] --> contest/src/poly.rs:41:13 [INFO] [stdout] | [INFO] [stdout] 41 | let A = poly_extend(A, proper_len); [INFO] [stdout] | ^ help: convert the identifier to snake case: `a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `AC` should have a snake case name [INFO] [stdout] --> contest/src/poly.rs:43:17 [INFO] [stdout] | [INFO] [stdout] 43 | let mut AC = poly_extend(Self::convolution(A, C.clone()), m); [INFO] [stdout] | ^^ help: convert the identifier to snake case: `ac` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `singleton` should have an upper case name [INFO] [stdout] --> contest/src/rand.rs:51:16 [INFO] [stdout] | [INFO] [stdout] 51 | static mut singleton: Option = None; [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper case: `SINGLETON` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `singleton` should have an upper case name [INFO] [stdout] --> contest/src/dynamic_modint.rs:84:28 [INFO] [stdout] | [INFO] [stdout] 84 | static mut singleton: Modulus<$T> = Modulus { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper case: `SINGLETON` [INFO] [stdout] ... [INFO] [stdout] 96 | DynamicModulusFactoryImpl!(MF32, u32); [INFO] [stdout] | ------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `singleton` should have an upper case name [INFO] [stdout] --> contest/src/dynamic_modint.rs:84:28 [INFO] [stdout] | [INFO] [stdout] 84 | static mut singleton: Modulus<$T> = Modulus { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper case: `SINGLETON` [INFO] [stdout] ... [INFO] [stdout] 97 | DynamicModulusFactoryImpl!(MF64, u64); [INFO] [stdout] | ------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `phi` should have an upper case name [INFO] [stdout] --> contest/src/enumerate_prime.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | static phi: [usize; 10] = [ [INFO] [stdout] | ^^^ help: convert the identifier to upper case: `PHI` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree.rs:68:16 [INFO] [stdout] | [INFO] [stdout] 68 | pub fn new(L: usize, R: usize, f: impl Fn(usize) -> S) -> Self { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree.rs:68:26 [INFO] [stdout] | [INFO] [stdout] 68 | pub fn new(L: usize, R: usize, f: impl Fn(usize) -> S) -> Self { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree.rs:106:43 [INFO] [stdout] | [INFO] [stdout] 106 | fn update_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize, u: U) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree.rs:106:53 [INFO] [stdout] | [INFO] [stdout] 106 | fn update_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize, u: U) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree.rs:121:42 [INFO] [stdout] | [INFO] [stdout] 121 | fn query_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree.rs:121:52 [INFO] [stdout] | [INFO] [stdout] 121 | fn query_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:200:39 [INFO] [stdout] | [INFO] [stdout] 200 | pub fn query_sum(self: &mut Self, L: usize, R: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:200:49 [INFO] [stdout] | [INFO] [stdout] 200 | pub fn query_sum(self: &mut Self, L: usize, R: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:204:52 [INFO] [stdout] | [INFO] [stdout] 204 | fn query_sum_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:204:62 [INFO] [stdout] | [INFO] [stdout] 204 | fn query_sum_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:217:39 [INFO] [stdout] | [INFO] [stdout] 217 | pub fn query_max(self: &mut Self, L: usize, R: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:217:49 [INFO] [stdout] | [INFO] [stdout] 217 | pub fn query_max(self: &mut Self, L: usize, R: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:221:52 [INFO] [stdout] | [INFO] [stdout] 221 | fn query_max_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling contest v0.1.0 (/opt/rustwide/workdir/contest) [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:221:62 [INFO] [stdout] | [INFO] [stdout] 221 | fn query_max_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:235:39 [INFO] [stdout] | [INFO] [stdout] 235 | pub fn query_min(self: &mut Self, L: usize, R: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:235:49 [INFO] [stdout] | [INFO] [stdout] 235 | pub fn query_min(self: &mut Self, L: usize, R: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:239:52 [INFO] [stdout] | [INFO] [stdout] 239 | fn query_min_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:239:62 [INFO] [stdout] | [INFO] [stdout] 239 | fn query_min_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:253:40 [INFO] [stdout] | [INFO] [stdout] 253 | pub fn update_min(self: &mut Self, L: usize, R: usize, u: T) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:253:50 [INFO] [stdout] | [INFO] [stdout] 253 | pub fn update_min(self: &mut Self, L: usize, R: usize, u: T) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:261:9 [INFO] [stdout] | [INFO] [stdout] 261 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:262:9 [INFO] [stdout] | [INFO] [stdout] 262 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:286:40 [INFO] [stdout] | [INFO] [stdout] 286 | pub fn update_max(self: &mut Self, L: usize, R: usize, u: T) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:286:50 [INFO] [stdout] | [INFO] [stdout] 286 | pub fn update_max(self: &mut Self, L: usize, R: usize, u: T) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:294:9 [INFO] [stdout] | [INFO] [stdout] 294 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:295:9 [INFO] [stdout] | [INFO] [stdout] 295 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:319:42 [INFO] [stdout] | [INFO] [stdout] 319 | pub fn update_value(self: &mut Self, L: usize, R: usize, u: T) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:319:52 [INFO] [stdout] | [INFO] [stdout] 319 | pub fn update_value(self: &mut Self, L: usize, R: usize, u: T) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:327:9 [INFO] [stdout] | [INFO] [stdout] 327 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:328:9 [INFO] [stdout] | [INFO] [stdout] 328 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `L` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `R` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `L` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `R` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:56:16 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn new(L: usize, R: usize, nil_sum: S) -> Self { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:56:26 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn new(L: usize, R: usize, nil_sum: S) -> Self { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:110:38 [INFO] [stdout] | [INFO] [stdout] 110 | fn query_rec(&self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:110:48 [INFO] [stdout] | [INFO] [stdout] 110 | fn query_rec(&self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:249:9 [INFO] [stdout] | [INFO] [stdout] 249 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:250:9 [INFO] [stdout] | [INFO] [stdout] 250 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:283:9 [INFO] [stdout] | [INFO] [stdout] 283 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:284:9 [INFO] [stdout] | [INFO] [stdout] 284 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/lichao_segtree.rs:84:30 [INFO] [stdout] | [INFO] [stdout] 84 | pub fn insert(&mut self, L: T, R: T, a: T, b: T) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/lichao_segtree.rs:84:36 [INFO] [stdout] | [INFO] [stdout] 84 | pub fn insert(&mut self, L: T, R: T, a: T, b: T) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/lichao_segtree.rs:85:13 [INFO] [stdout] | [INFO] [stdout] 85 | let L = first_true(0, self.1.len() - 1, |&x| self.1[x] >= L); [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/lichao_segtree.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | let R = last_true(0, self.1.len() - 1, |&x| self.1[x] <= R); [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/lichao_segtree.rs:87:22 [INFO] [stdout] | [INFO] [stdout] 87 | if let (Some(L), Some(R)) = (L, R) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/lichao_segtree.rs:87:31 [INFO] [stdout] | [INFO] [stdout] 87 | if let (Some(L), Some(R)) = (L, R) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/lichao_segtree.rs:95:9 [INFO] [stdout] | [INFO] [stdout] 95 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/lichao_segtree.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 96 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `leftSubset` should have a snake case name [INFO] [stdout] --> contest/src/maximum_independent_set.rs:62:13 [INFO] [stdout] | [INFO] [stdout] 62 | let leftSubset = subsets[(mask & (!nearby[i])) as usize]; [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `left_subset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `S` should have a snake case name [INFO] [stdout] --> contest/src/bipartite_maximum_weight_match_km.rs:50:13 [INFO] [stdout] | [INFO] [stdout] 50 | let mut S = vec![false; n]; [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `T` should have a snake case name [INFO] [stdout] --> contest/src/bipartite_maximum_weight_match_km.rs:51:13 [INFO] [stdout] | [INFO] [stdout] 51 | let mut T = vec![false; n]; [INFO] [stdout] | ^ help: convert the identifier to snake case: `t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> contest/src/solver.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | writeln!(fo, "{}", kth); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `T` should have a snake case name [INFO] [stdout] --> contest/src/vector_binary_subset_convolution.rs:20:13 [INFO] [stdout] | [INFO] [stdout] 20 | let mut T = vec![zero; n]; [INFO] [stdout] | ^ help: convert the identifier to snake case: `t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 198 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `stress::stress` [INFO] [stdout] --> contest/src/main.rs:3:36 [INFO] [stdout] | [INFO] [stdout] 3 | use contest::{solver::solve_multi, stress::stress}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `run_in_new_thread` [INFO] [stdout] --> contest/src/main.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | unsafe fn run_in_new_thread() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> contest/src/main.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | / thread::Builder::new() [INFO] [stdout] 17 | | .stack_size(256 << 20) [INFO] [stdout] 18 | | .spawn(|| {run_in_current_thread();}) [INFO] [stdout] 19 | | .unwrap() [INFO] [stdout] 20 | | .join(); [INFO] [stdout] | |____________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> contest/src/fast_input.rs:1:15 [INFO] [stdout] | [INFO] [stdout] 1 | use std::io::{self, BufRead, BufReader, Cursor}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num_gcd::gcd` [INFO] [stdout] --> contest/src/math.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | num_gcd::gcd, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num_float::float` [INFO] [stdout] --> contest/src/arithmetic.rs:1:13 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{num_float::float, num_number::FromNumber}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rng` [INFO] [stdout] --> contest/src/miller_rabin.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::rand::{rng, random}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Add` [INFO] [stdout] --> contest/src/pollard_rho.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::ops::Add; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `convolution_brute_force` [INFO] [stdout] --> contest/src/poly_ntt.rs:9:163 [INFO] [stdout] | [INFO] [stdout] 9 | ...ucture::Field, poly_common::{poly_extend, poly_length, convolution_brute_force, poly_trim}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `mi0` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_mtt.rs:17:6 [INFO] [stdout] | [INFO] [stdout] 17 | type mi0 = StaticModInt; [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case: `Mi0` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `mi1` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_mtt.rs:18:6 [INFO] [stdout] | [INFO] [stdout] 18 | type mi1 = StaticModInt; [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case: `Mi1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `mi2` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_mtt.rs:19:6 [INFO] [stdout] | [INFO] [stdout] 19 | type mi2 = StaticModInt; [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case: `Mi2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `cv0` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_mtt.rs:21:6 [INFO] [stdout] | [INFO] [stdout] 21 | type cv0 = ConvolutionNTT; [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `cv1` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_mtt.rs:22:6 [INFO] [stdout] | [INFO] [stdout] 22 | type cv1 = ConvolutionNTT; [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `cv2` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_mtt.rs:23:6 [INFO] [stdout] | [INFO] [stdout] 23 | type cv2 = ConvolutionNTT; [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `mi` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_ntt_test.rs:3:6 [INFO] [stdout] | [INFO] [stdout] 3 | type mi = StaticModInt; [INFO] [stdout] | ^^ help: convert the identifier to upper camel case: `Mi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `conv` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_ntt_test.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | type conv = ConvolutionNTT; [INFO] [stdout] | ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `mi` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_mtt_test.rs:3:6 [INFO] [stdout] | [INFO] [stdout] 3 | type mi = StaticModInt; [INFO] [stdout] | ^^ help: convert the identifier to upper camel case: `Mi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `conv` should have an upper camel case name [INFO] [stdout] --> contest/src/poly_mtt_test.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | type conv = ConvolutionMTT; [INFO] [stdout] | ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num_number::FromNumber` [INFO] [stdout] --> contest/src/poly_common.rs:1:66 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{algebraic_structure::{Ring, Field}, math::log2_ceil, num_number::FromNumber}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> contest/src/poly_bf.rs:5:41 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct ConvolutionBF(PhantomData<(T)>); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 5 - pub struct ConvolutionBF(PhantomData<(T)>); [INFO] [stdout] 5 + pub struct ConvolutionBF(PhantomData); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Convolution`, `Poly` [INFO] [stdout] --> contest/src/poly_interpolation.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | poly::{Convolution, Poly}, [INFO] [stdout] | ^^^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Display`, `Pointer` [INFO] [stdout] --> contest/src/linear_feedback_shift_register.rs:1:64 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{ops::{Index}, cmp::max, collections::VecDeque, fmt::{Display, Pointer}}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug_discard`, `debug` [INFO] [stdout] --> contest/src/linear_recurrence.rs:3:33 [INFO] [stdout] | [INFO] [stdout] 3 | macros::{should, should_eq, debug_discard, debug}, [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `mi` should have an upper camel case name [INFO] [stdout] --> contest/src/linear_recurrence_test.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | type mi = StaticModInt; [INFO] [stdout] | ^^ help: convert the identifier to upper camel case: `Mi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `conv` should have an upper camel case name [INFO] [stdout] --> contest/src/linear_recurrence_test.rs:5:6 [INFO] [stdout] | [INFO] [stdout] 5 | type conv = ConvolutionBF; [INFO] [stdout] | ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `xorshift128p_state` should have an upper camel case name [INFO] [stdout] --> contest/src/rand.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | struct xorshift128p_state(u64, u64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Xorshift128pState` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Number` [INFO] [stdout] --> contest/src/num_real.rs:1:26 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{num_number::{Number, FromNumber}, num_concrete::Concrete}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `str::FromStr`, `string::ParseError` [INFO] [stdout] --> contest/src/modint.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{str::FromStr, string::ParseError, hash::Hash}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Error`, `num::ParseIntError`, `self`, `string::ParseError` [INFO] [stdout] --> contest/src/dynamic_modint.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | fmt::{self, Debug, Display, Error}, [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] 3 | marker::PhantomData, [INFO] [stdout] 4 | num::ParseIntError, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 7 | string::ParseError, hash::Hash, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `algebraic_structure::*` [INFO] [stdout] --> contest/src/dynamic_modint.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | algebraic_structure::*, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Error`, `num::ParseIntError`, `self`, `string::ParseError` [INFO] [stdout] --> contest/src/static_modint.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | fmt::{self, Debug, Display, Error}, [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] 3 | marker::PhantomData, [INFO] [stdout] 4 | num::ParseIntError, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 7 | string::ParseError, hash::Hash, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `algebraic_structure::*` [INFO] [stdout] --> contest/src/static_modint.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | algebraic_structure::*, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `max` [INFO] [stdout] --> contest/src/enumerate_prime.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use std::cmp::{max, min}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `IndexMut`, `ShlAssign`, `Shl` [INFO] [stdout] --> contest/src/bitset.rs:1:114 [INFO] [stdout] | [INFO] [stdout] 1 | ..., BitXor, BitAndAssign, BitOrAssign, BitXorAssign, Shl, ShlAssign, Index, IndexMut}}; [INFO] [stdout] | ^^^ ^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Pointer` [INFO] [stdout] --> contest/src/num_float.rs:2:27 [INFO] [stdout] | [INFO] [stdout] 2 | fmt::{Debug, Display, Pointer}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `float` should have an upper camel case name [INFO] [stdout] --> contest/src/num_float.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct float(f64); [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Float` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `debug` [INFO] [stdout] --> contest/src/binary_lifting_compress_on_tree.rs:3:62 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{algebraic_structure::Monoid, macros::{should_eq, debug}, arithmetic::{IdentityAdd, Nil}}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ops::Add` [INFO] [stdout] --> contest/src/persistent_segtree.rs:1:23 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{fmt::Debug, ops::Add}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Ordering` [INFO] [stdout] --> contest/src/lichao_segtree.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{cmp::{Ordering, max}, mem::swap}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> contest/src/lichao_segtree.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | / /// [INFO] [stdout] 77 | | /// a.0 x + a.1 = b.0 x + b.1 [INFO] [stdout] 78 | | /// => x = (b.1 - a.1) / (a.0 - b.0) [INFO] [stdout] 79 | | /// [INFO] [stdout] | |_________--^ [INFO] [stdout] | | [INFO] [stdout] | rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `take` [INFO] [stdout] --> contest/src/leftist_tree.rs:1:38 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{cmp::Ordering, mem::{swap, take, replace}}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `argmax_by`, `num_number::Number` [INFO] [stdout] --> contest/src/tree_diameter.rs:1:102 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{graph::{DiEdge, WeightEdge}, tree_depth::{tree_depth, tree_depth_weight}, math::{argmax, argmax_by}, num_number::Number, num_... [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `collections::HashMap` [INFO] [stdout] --> contest/src/collection.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::HashMap, mem::swap}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `random_permutation` [INFO] [stdout] --> contest/src/bipartite_match_kuhn.rs:3:15 [INFO] [stdout] | [INFO] [stdout] 3 | shuffle::{random_permutation, shuffle}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `debug` [INFO] [stdout] --> contest/src/macros.rs:44:14 [INFO] [stdout] | [INFO] [stdout] 44 | macro_rules! debug { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_macros)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `MergerImpl` [INFO] [stdout] --> contest/src/macros.rs:75:14 [INFO] [stdout] | [INFO] [stdout] 75 | macro_rules! MergerImpl { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `AddImpl` [INFO] [stdout] --> contest/src/macros.rs:86:14 [INFO] [stdout] | [INFO] [stdout] 86 | macro_rules! AddImpl { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `SubImpl` [INFO] [stdout] --> contest/src/macros.rs:99:14 [INFO] [stdout] | [INFO] [stdout] 99 | macro_rules! SubImpl { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `DivImpl` [INFO] [stdout] --> contest/src/macros.rs:112:14 [INFO] [stdout] | [INFO] [stdout] 112 | macro_rules! DivImpl { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `MulImpl` [INFO] [stdout] --> contest/src/macros.rs:125:14 [INFO] [stdout] | [INFO] [stdout] 125 | macro_rules! MulImpl { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MergerImpl` [INFO] [stdout] --> contest/src/macros.rs:168:16 [INFO] [stdout] | [INFO] [stdout] 168 | pub (crate)use MergerImpl; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AddImpl` [INFO] [stdout] --> contest/src/macros.rs:170:16 [INFO] [stdout] | [INFO] [stdout] 170 | pub (crate)use AddImpl; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SubImpl` [INFO] [stdout] --> contest/src/macros.rs:172:16 [INFO] [stdout] | [INFO] [stdout] 172 | pub (crate)use SubImpl; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MulImpl` [INFO] [stdout] --> contest/src/macros.rs:174:16 [INFO] [stdout] | [INFO] [stdout] 174 | pub (crate)use MulImpl; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DivImpl` [INFO] [stdout] --> contest/src/macros.rs:176:16 [INFO] [stdout] | [INFO] [stdout] 176 | pub (crate)use DivImpl; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `panic` [INFO] [stdout] --> contest/src/solver.rs:1:33 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{io::{Write, BufRead}, panic}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Add`, `Div`, `Mul`, `Sub` [INFO] [stdout] --> contest/src/solver.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | use std::ops::{Add, Sub, Mul, Div}; [INFO] [stdout] | ^^^ ^^^ ^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `poly::Poly` [INFO] [stdout] --> contest/src/solver.rs:3:62 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{fast_input::FastInput, poly_ntt::ConvolutionNTT, poly::Poly, static_modint::{StaticModInt, MF998244353}, num_number::FromNumb... [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::algebraic_structure::*` [INFO] [stdout] --> contest/src/solver.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::algebraic_structure::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `mi` should have an upper camel case name [INFO] [stdout] --> contest/src/solver.rs:8:6 [INFO] [stdout] | [INFO] [stdout] 8 | type mi = StaticModInt; [INFO] [stdout] | ^^ help: convert the identifier to upper camel case: `Mi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `conv` should have an upper camel case name [INFO] [stdout] --> contest/src/solver.rs:9:6 [INFO] [stdout] | [INFO] [stdout] 9 | type conv = ConvolutionNTT; [INFO] [stdout] | ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mem::swap` [INFO] [stdout] --> contest/src/stress_external_member.rs:1:33 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{io::{BufRead, Write}, mem::swap}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num_integer::Integer` [INFO] [stdout] --> contest/src/vector_binary_subset_convolution.rs:5:42 [INFO] [stdout] | [INFO] [stdout] 5 | vector_binary_convolution::FWTLayer, num_integer::Integer [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> contest/src/permutation.rs:38:13 [INFO] [stdout] | [INFO] [stdout] 32 | / loop { [INFO] [stdout] 33 | | j -= 1; [INFO] [stdout] 34 | | if s[j] < s[i] { [INFO] [stdout] 35 | | swap_element(s, i, j); [INFO] [stdout] 36 | | } [INFO] [stdout] 37 | | } [INFO] [stdout] | |_____________- any code following this expression is unreachable [INFO] [stdout] 38 | s[i + 1..n].reverse(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BufRead` [INFO] [stdout] --> contest/src/fast_input.rs:1:21 [INFO] [stdout] | [INFO] [stdout] 1 | use std::io::{self, BufRead, BufReader, Cursor}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Number` [INFO] [stdout] --> contest/src/pollard_rho.rs:7:25 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::num_number::{Number, FromNumber}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num_integer::Integer` [INFO] [stdout] --> contest/src/poly.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | num_integer::Integer, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Number` [INFO] [stdout] --> contest/src/num_integer_reverse.rs:2:37 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::num_number::{FromNumber, Number}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Number` [INFO] [stdout] --> contest/src/bipartite_minimum_weight_match.rs:6:18 [INFO] [stdout] | [INFO] [stdout] 6 | num_number::{Number, FromNumber}, num_concrete::Concrete, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num_number::Number` [INFO] [stdout] --> contest/src/bipartite_maximum_weight_match_km.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{num_number::Number, num_concrete::Concrete}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rhs` [INFO] [stdout] --> contest/src/arithmetic.rs:206:18 [INFO] [stdout] | [INFO] [stdout] 206 | fn mul(self, rhs: Nil) -> Self::Output { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rhs` [INFO] [stdout] --> contest/src/arithmetic.rs:213:18 [INFO] [stdout] | [INFO] [stdout] 213 | fn add(self, rhs: Nil) -> Self::Output { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rhs` [INFO] [stdout] --> contest/src/arithmetic.rs:220:18 [INFO] [stdout] | [INFO] [stdout] 220 | fn sub(self, rhs: Nil) -> Self::Output { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rhs` [INFO] [stdout] --> contest/src/arithmetic.rs:228:18 [INFO] [stdout] | [INFO] [stdout] 228 | fn div(self, rhs: Nil) -> Self::Output { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `other` [INFO] [stdout] --> contest/src/arithmetic.rs:233:18 [INFO] [stdout] | [INFO] [stdout] 233 | fn eq(&self, other: &Self) -> bool { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_other` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `other` [INFO] [stdout] --> contest/src/arithmetic.rs:239:27 [INFO] [stdout] | [INFO] [stdout] 239 | fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_other` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `t` is never read [INFO] [stdout] --> contest/src/pollard_rho.rs:78:13 [INFO] [stdout] | [INFO] [stdout] 78 | let mut t = T::ZERO; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rank` [INFO] [stdout] --> contest/src/poly.rs:118:13 [INFO] [stdout] | [INFO] [stdout] 118 | let rank = self.rank(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_rank` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 227 | IntegerImpl!(i8, i16, u8, i8); [INFO] [stdout] | ----------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 228 | IntegerImpl!(u8, i16, u8, i8); [INFO] [stdout] | ----------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 229 | IntegerImpl!(i16, i32, u16, i16); [INFO] [stdout] | -------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 230 | IntegerImpl!(u16, u32, u16, i16); [INFO] [stdout] | -------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 231 | IntegerImpl!(i32, i64, u32, i32); [INFO] [stdout] | -------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 232 | IntegerImpl!(u32, u64, u32, i32); [INFO] [stdout] | -------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 233 | IntegerImpl!(isize, isize, usize, isize); [INFO] [stdout] | ---------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 234 | IntegerImpl!(usize, usize, usize, isize); [INFO] [stdout] | ---------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 235 | IntegerImpl!(i64, i128, u64, i64); [INFO] [stdout] | --------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 236 | IntegerImpl!(u64, u128, u64, i64); [INFO] [stdout] | --------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 237 | IntegerImpl!(i128, i128, u128, i128); [INFO] [stdout] | ------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> contest/src/num_integer.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | let x = 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] ... [INFO] [stdout] 238 | IntegerImpl!(u128, u128, u128, i128); [INFO] [stdout] | ------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> contest/src/range_kth_smallest_persistent_segtree.rs:65:14 [INFO] [stdout] | [INFO] [stdout] 65 | |i, a, b| b - a >= k, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> contest/src/range_tree.rs:89:13 [INFO] [stdout] | [INFO] [stdout] 89 | for i in 0..level { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> contest/src/cost_flow_augment_dijkstra.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | let n = self.g.len(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `test_id` [INFO] [stdout] --> contest/src/solver.rs:10:37 [INFO] [stdout] | [INFO] [stdout] 10 | pub unsafe fn solve_one(test_id: usize, fi: &mut FastInput, fo: &mut impl Write) { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_test_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `fi` [INFO] [stdout] --> contest/src/stress_external_member.rs:6:32 [INFO] [stdout] | [INFO] [stdout] 6 | pub unsafe fn brute_force(fi: &mut FastInput, fo: &mut impl Write) [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_fi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `fo` [INFO] [stdout] --> contest/src/stress_external_member.rs:6:57 [INFO] [stdout] | [INFO] [stdout] 6 | pub unsafe fn brute_force(fi: &mut FastInput, fo: &mut impl Write) [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_fo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rng` [INFO] [stdout] --> contest/src/stress_external_member.rs:12:22 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn generate_test(rng: &mut Rng, fo: &mut impl Write) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rng` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `fo` [INFO] [stdout] --> contest/src/stress_external_member.rs:12:37 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn generate_test(rng: &mut Rng, fo: &mut impl Write) { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_fo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> contest/src/vector_matrix.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 71 | let k = lhs.m; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/math.rs:133:32 [INFO] [stdout] | [INFO] [stdout] 133 | pub fn inverse_batch(mut data: &[T]) -> Vec { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/pollard_rho.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 80 | let mut c = random(n - T::ONE) + T::ONE; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly_fft.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | let mut tn = ::from(n); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly.rs:110:17 [INFO] [stdout] | [INFO] [stdout] 110 | let mut ans = self.exp0((n + 1) / 2); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly.rs:111:17 [INFO] [stdout] | [INFO] [stdout] 111 | let mut ln = ans.clone().ln(n); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly.rs:138:38 [INFO] [stdout] | [INFO] [stdout] 138 | pub fn downgrade_mod(self: Self, mut n: impl Iterator) -> Self { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly.rs:225:43 [INFO] [stdout] | [INFO] [stdout] 225 | pub fn convolution_delta(mut a: Self, mut b: Self) -> Self { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly.rs:228:13 [INFO] [stdout] | [INFO] [stdout] 228 | let mut res = C::convolution(a.0, b.0); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly.rs:281:22 [INFO] [stdout] | [INFO] [stdout] 281 | pub fn batch_mul(mut polys: &mut [Self]) -> Self { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly.rs:296:18 [INFO] [stdout] | [INFO] [stdout] 296 | fn into_iter(mut self) -> std::vec::IntoIter { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly_common.rs:8:30 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn poly_modular(mut p: Vec, len: usize) -> Vec { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/poly_interpolation.rs:19:13 [INFO] [stdout] | [INFO] [stdout] 19 | let mut res = Self { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/treap.rs:137:30 [INFO] [stdout] | [INFO] [stdout] 137 | pub fn modify(&mut self, mut id: usize, upd: U) { [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/link_cut_tree.rs:122:28 [INFO] [stdout] | [INFO] [stdout] 122 | pub fn init(&mut self, mut id: usize) { [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/general_graph_match.rs:139:24 [INFO] [stdout] | [INFO] [stdout] 139 | pub fn mate(&self, mut i: usize) -> Option { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/bipartite_maximum_weight_match_km.rs:60:17 [INFO] [stdout] | [INFO] [stdout] 60 | let mut x = queue[qs]; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/bipartite_maximum_weight_match_km.rs:67:21 [INFO] [stdout] | [INFO] [stdout] 67 | let mut tmp = row.left_label[x] + row.right_label[y] - row.table[x][y]; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/bipartite_maximum_weight_match_km.rs:123:13 [INFO] [stdout] | [INFO] [stdout] 123 | let mut pre_x = y_pre[end_y]; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/bipartite_maximum_weight_match_km.rs:124:13 [INFO] [stdout] | [INFO] [stdout] 124 | let mut pre_y = row.left_mate[pre_x]; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/macros.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | let mut $var $(: $t)? = $fi.read(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] ::: contest/src/solver.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | / input!{ [INFO] [stdout] 12 | | fi, [INFO] [stdout] 13 | | d: usize, [INFO] [stdout] 14 | | k: u64, [INFO] [stdout] 15 | | } [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/macros.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | let mut $var $(: $t)? = $fi.read(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] ::: contest/src/solver.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | / input!{ [INFO] [stdout] 12 | | fi, [INFO] [stdout] 13 | | d: usize, [INFO] [stdout] 14 | | k: u64, [INFO] [stdout] 15 | | } [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> contest/src/solver.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | let mut c = c.iter().rev().map(|x| mi::zero() - *x).collect(); [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `mod2` should have an upper case name [INFO] [stdout] --> contest/src/poly_mtt.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | static mod2: i64 = M0 * M1; [INFO] [stdout] | ^^^^ help: convert the identifier to upper case: `MOD2` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `inv10` should have an upper case name [INFO] [stdout] --> contest/src/poly_mtt.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 29 | static inv10: i64 = 208783132; [INFO] [stdout] | ^^^^^ help: convert the identifier to upper case: `INV10` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `inv01` should have an upper case name [INFO] [stdout] --> contest/src/poly_mtt.rs:30:8 [INFO] [stdout] | [INFO] [stdout] 30 | static inv01: i64 = 554580198; [INFO] [stdout] | ^^^^^ help: convert the identifier to upper case: `INV01` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `inv012` should have an upper case name [INFO] [stdout] --> contest/src/poly_mtt.rs:31:8 [INFO] [stdout] | [INFO] [stdout] 31 | static inv012: i64 = 29562547; [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `INV012` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `p1inv10` should have an upper case name [INFO] [stdout] --> contest/src/poly_mtt.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 32 | static p1inv10: i64 = 208416582520653596; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `P1INV10` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `p0inv01` should have an upper case name [INFO] [stdout] --> contest/src/poly_mtt.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | static p0inv01: i64 = 260520730147305702; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `P0INV01` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `C` should have a snake case name [INFO] [stdout] --> contest/src/poly.rs:38:13 [INFO] [stdout] | [INFO] [stdout] 38 | let C = Self::inverse_internal(p.split_at(prev_mod).0); [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `c` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `C` should have a snake case name [INFO] [stdout] --> contest/src/poly.rs:39:13 [INFO] [stdout] | [INFO] [stdout] 39 | let C = poly_extend(C, proper_len); [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `A` should have a snake case name [INFO] [stdout] --> contest/src/poly.rs:40:13 [INFO] [stdout] | [INFO] [stdout] 40 | let A = p.to_owned(); [INFO] [stdout] | ^ help: convert the identifier to snake case: `a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `A` should have a snake case name [INFO] [stdout] --> contest/src/poly.rs:41:13 [INFO] [stdout] | [INFO] [stdout] 41 | let A = poly_extend(A, proper_len); [INFO] [stdout] | ^ help: convert the identifier to snake case: `a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `AC` should have a snake case name [INFO] [stdout] --> contest/src/poly.rs:43:17 [INFO] [stdout] | [INFO] [stdout] 43 | let mut AC = poly_extend(Self::convolution(A, C.clone()), m); [INFO] [stdout] | ^^ help: convert the identifier to snake case: `ac` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `singleton` should have an upper case name [INFO] [stdout] --> contest/src/rand.rs:51:16 [INFO] [stdout] | [INFO] [stdout] 51 | static mut singleton: Option = None; [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper case: `SINGLETON` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `singleton` should have an upper case name [INFO] [stdout] --> contest/src/dynamic_modint.rs:84:28 [INFO] [stdout] | [INFO] [stdout] 84 | static mut singleton: Modulus<$T> = Modulus { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper case: `SINGLETON` [INFO] [stdout] ... [INFO] [stdout] 96 | DynamicModulusFactoryImpl!(MF32, u32); [INFO] [stdout] | ------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `singleton` should have an upper case name [INFO] [stdout] --> contest/src/dynamic_modint.rs:84:28 [INFO] [stdout] | [INFO] [stdout] 84 | static mut singleton: Modulus<$T> = Modulus { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper case: `SINGLETON` [INFO] [stdout] ... [INFO] [stdout] 97 | DynamicModulusFactoryImpl!(MF64, u64); [INFO] [stdout] | ------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `phi` should have an upper case name [INFO] [stdout] --> contest/src/enumerate_prime.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | static phi: [usize; 10] = [ [INFO] [stdout] | ^^^ help: convert the identifier to upper case: `PHI` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree.rs:68:16 [INFO] [stdout] | [INFO] [stdout] 68 | pub fn new(L: usize, R: usize, f: impl Fn(usize) -> S) -> Self { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree.rs:68:26 [INFO] [stdout] | [INFO] [stdout] 68 | pub fn new(L: usize, R: usize, f: impl Fn(usize) -> S) -> Self { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree.rs:106:43 [INFO] [stdout] | [INFO] [stdout] 106 | fn update_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize, u: U) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree.rs:106:53 [INFO] [stdout] | [INFO] [stdout] 106 | fn update_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize, u: U) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree.rs:121:42 [INFO] [stdout] | [INFO] [stdout] 121 | fn query_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree.rs:121:52 [INFO] [stdout] | [INFO] [stdout] 121 | fn query_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:200:39 [INFO] [stdout] | [INFO] [stdout] 200 | pub fn query_sum(self: &mut Self, L: usize, R: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:200:49 [INFO] [stdout] | [INFO] [stdout] 200 | pub fn query_sum(self: &mut Self, L: usize, R: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:204:52 [INFO] [stdout] | [INFO] [stdout] 204 | fn query_sum_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:204:62 [INFO] [stdout] | [INFO] [stdout] 204 | fn query_sum_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:217:39 [INFO] [stdout] | [INFO] [stdout] 217 | pub fn query_max(self: &mut Self, L: usize, R: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:217:49 [INFO] [stdout] | [INFO] [stdout] 217 | pub fn query_max(self: &mut Self, L: usize, R: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:221:52 [INFO] [stdout] | [INFO] [stdout] 221 | fn query_max_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:221:62 [INFO] [stdout] | [INFO] [stdout] 221 | fn query_max_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:235:39 [INFO] [stdout] | [INFO] [stdout] 235 | pub fn query_min(self: &mut Self, L: usize, R: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:235:49 [INFO] [stdout] | [INFO] [stdout] 235 | pub fn query_min(self: &mut Self, L: usize, R: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:239:52 [INFO] [stdout] | [INFO] [stdout] 239 | fn query_min_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:239:62 [INFO] [stdout] | [INFO] [stdout] 239 | fn query_min_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:253:40 [INFO] [stdout] | [INFO] [stdout] 253 | pub fn update_min(self: &mut Self, L: usize, R: usize, u: T) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:253:50 [INFO] [stdout] | [INFO] [stdout] 253 | pub fn update_min(self: &mut Self, L: usize, R: usize, u: T) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:261:9 [INFO] [stdout] | [INFO] [stdout] 261 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:262:9 [INFO] [stdout] | [INFO] [stdout] 262 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:286:40 [INFO] [stdout] | [INFO] [stdout] 286 | pub fn update_max(self: &mut Self, L: usize, R: usize, u: T) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:286:50 [INFO] [stdout] | [INFO] [stdout] 286 | pub fn update_max(self: &mut Self, L: usize, R: usize, u: T) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:294:9 [INFO] [stdout] | [INFO] [stdout] 294 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:295:9 [INFO] [stdout] | [INFO] [stdout] 295 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:319:42 [INFO] [stdout] | [INFO] [stdout] 319 | pub fn update_value(self: &mut Self, L: usize, R: usize, u: T) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:319:52 [INFO] [stdout] | [INFO] [stdout] 319 | pub fn update_value(self: &mut Self, L: usize, R: usize, u: T) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:327:9 [INFO] [stdout] | [INFO] [stdout] 327 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/segtree_beat_ext.rs:328:9 [INFO] [stdout] | [INFO] [stdout] 328 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `L` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `R` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `L` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `R` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:56:16 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn new(L: usize, R: usize, nil_sum: S) -> Self { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:56:26 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn new(L: usize, R: usize, nil_sum: S) -> Self { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:110:38 [INFO] [stdout] | [INFO] [stdout] 110 | fn query_rec(&self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:110:48 [INFO] [stdout] | [INFO] [stdout] 110 | fn query_rec(&self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:249:9 [INFO] [stdout] | [INFO] [stdout] 249 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:250:9 [INFO] [stdout] | [INFO] [stdout] 250 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:283:9 [INFO] [stdout] | [INFO] [stdout] 283 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/persistent_segtree.rs:284:9 [INFO] [stdout] | [INFO] [stdout] 284 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/lichao_segtree.rs:84:30 [INFO] [stdout] | [INFO] [stdout] 84 | pub fn insert(&mut self, L: T, R: T, a: T, b: T) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/lichao_segtree.rs:84:36 [INFO] [stdout] | [INFO] [stdout] 84 | pub fn insert(&mut self, L: T, R: T, a: T, b: T) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/lichao_segtree.rs:85:13 [INFO] [stdout] | [INFO] [stdout] 85 | let L = first_true(0, self.1.len() - 1, |&x| self.1[x] >= L); [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/lichao_segtree.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | let R = last_true(0, self.1.len() - 1, |&x| self.1[x] <= R); [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/lichao_segtree.rs:87:22 [INFO] [stdout] | [INFO] [stdout] 87 | if let (Some(L), Some(R)) = (L, R) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/lichao_segtree.rs:87:31 [INFO] [stdout] | [INFO] [stdout] 87 | if let (Some(L), Some(R)) = (L, R) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `L` should have a snake case name [INFO] [stdout] --> contest/src/lichao_segtree.rs:95:9 [INFO] [stdout] | [INFO] [stdout] 95 | L: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `l` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `R` should have a snake case name [INFO] [stdout] --> contest/src/lichao_segtree.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 96 | R: usize, [INFO] [stdout] | ^ help: convert the identifier to snake case: `r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `leftSubset` should have a snake case name [INFO] [stdout] --> contest/src/maximum_independent_set.rs:62:13 [INFO] [stdout] | [INFO] [stdout] 62 | let leftSubset = subsets[(mask & (!nearby[i])) as usize]; [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `left_subset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `S` should have a snake case name [INFO] [stdout] --> contest/src/bipartite_maximum_weight_match_km.rs:50:13 [INFO] [stdout] | [INFO] [stdout] 50 | let mut S = vec![false; n]; [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `T` should have a snake case name [INFO] [stdout] --> contest/src/bipartite_maximum_weight_match_km.rs:51:13 [INFO] [stdout] | [INFO] [stdout] 51 | let mut T = vec![false; n]; [INFO] [stdout] | ^ help: convert the identifier to snake case: `t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> contest/src/solver.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | writeln!(fo, "{}", kth); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `T` should have a snake case name [INFO] [stdout] --> contest/src/vector_binary_subset_convolution.rs:20:13 [INFO] [stdout] | [INFO] [stdout] 20 | let mut T = vec![zero; n]; [INFO] [stdout] | ^ help: convert the identifier to snake case: `t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 193 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 4.66s [INFO] [stderr] Executable unittests src/lib.rs (/opt/rustwide/target/debug/deps/contest-55ad9dcead12c501) [INFO] [stderr] Executable unittests src/main.rs (/opt/rustwide/target/debug/deps/contest-a6aa7a1be193923b) [INFO] running `Command { std: "docker" "inspect" "ead1006636e761f4311d4dbfbf6fc5f16696fc7490fc7c64346c7cfeb9660514", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ead1006636e761f4311d4dbfbf6fc5f16696fc7490fc7c64346c7cfeb9660514", kill_on_drop: false }` [INFO] [stdout] ead1006636e761f4311d4dbfbf6fc5f16696fc7490fc7c64346c7cfeb9660514 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:eaef2f80f755933c374d2ae5edccceec0c1312ceb8a4e0b6404e8ab76561e1e5" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "test" "--frozen", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 7ccb970af3771815140f3eced965368d47b8ab09c27f56bf48c90357dabab34a [INFO] running `Command { std: "docker" "start" "-a" "7ccb970af3771815140f3eced965368d47b8ab09c27f56bf48c90357dabab34a", kill_on_drop: false }` [INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root: [INFO] [stderr] package: /opt/rustwide/workdir/contest/Cargo.toml [INFO] [stderr] workspace: /opt/rustwide/workdir/Cargo.toml [INFO] [stderr] warning: unused import: `self` [INFO] [stderr] --> contest/src/fast_input.rs:1:15 [INFO] [stderr] | [INFO] [stderr] 1 | use std::io::{self, BufRead, BufReader, Cursor}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `num_gcd::gcd` [INFO] [stderr] --> contest/src/math.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | num_gcd::gcd, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `num_float::float` [INFO] [stderr] --> contest/src/arithmetic.rs:1:13 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::{num_float::float, num_number::FromNumber}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rng` [INFO] [stderr] --> contest/src/miller_rabin.rs:4:19 [INFO] [stderr] | [INFO] [stderr] 4 | use crate::rand::{rng, random}; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Add` [INFO] [stderr] --> contest/src/pollard_rho.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::ops::Add; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `convolution_brute_force` [INFO] [stderr] --> contest/src/poly_ntt.rs:9:163 [INFO] [stderr] | [INFO] [stderr] 9 | ...ucture::Field, poly_common::{poly_extend, poly_length, convolution_brute_force, poly_trim}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type `mi0` should have an upper camel case name [INFO] [stderr] --> contest/src/poly_mtt.rs:17:6 [INFO] [stderr] | [INFO] [stderr] 17 | type mi0 = StaticModInt; [INFO] [stderr] | ^^^ help: convert the identifier to upper camel case: `Mi0` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stderr] [INFO] [stderr] warning: type `mi1` should have an upper camel case name [INFO] [stderr] --> contest/src/poly_mtt.rs:18:6 [INFO] [stderr] | [INFO] [stderr] 18 | type mi1 = StaticModInt; [INFO] [stderr] | ^^^ help: convert the identifier to upper camel case: `Mi1` [INFO] [stderr] [INFO] [stderr] warning: type `mi2` should have an upper camel case name [INFO] [stderr] --> contest/src/poly_mtt.rs:19:6 [INFO] [stderr] | [INFO] [stderr] 19 | type mi2 = StaticModInt; [INFO] [stderr] | ^^^ help: convert the identifier to upper camel case: `Mi2` [INFO] [stderr] [INFO] [stderr] warning: type `cv0` should have an upper camel case name [INFO] [stderr] --> contest/src/poly_mtt.rs:21:6 [INFO] [stderr] | [INFO] [stderr] 21 | type cv0 = ConvolutionNTT; [INFO] [stderr] | ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv0` [INFO] [stderr] [INFO] [stderr] warning: type `cv1` should have an upper camel case name [INFO] [stderr] --> contest/src/poly_mtt.rs:22:6 [INFO] [stderr] | [INFO] [stderr] 22 | type cv1 = ConvolutionNTT; [INFO] [stderr] | ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv1` [INFO] [stderr] [INFO] [stderr] warning: type `cv2` should have an upper camel case name [INFO] [stderr] --> contest/src/poly_mtt.rs:23:6 [INFO] [stderr] | [INFO] [stderr] 23 | type cv2 = ConvolutionNTT; [INFO] [stderr] | ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv2` [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ntt`, `poly::Poly` [INFO] [stderr] --> contest/src/poly_ntt_test.rs:1:68 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::{static_modint::{StaticModInt, MF998244353}, poly_ntt::{ntt, ConvolutionNTT}, poly::Poly}; [INFO] [stderr] | ^^^ ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: consider adding a `#[cfg(test)]` to the containing module [INFO] [stderr] --> contest/src/lib.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | pub mod poly_ntt_test; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type `mi` should have an upper camel case name [INFO] [stderr] --> contest/src/poly_ntt_test.rs:3:6 [INFO] [stderr] | [INFO] [stderr] 3 | type mi = StaticModInt; [INFO] [stderr] | ^^ help: convert the identifier to upper camel case: `Mi` [INFO] [stderr] [INFO] [stderr] warning: type `conv` should have an upper camel case name [INFO] [stderr] --> contest/src/poly_ntt_test.rs:4:6 [INFO] [stderr] | [INFO] [stderr] 4 | type conv = ConvolutionNTT; [INFO] [stderr] | ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv` [INFO] [stderr] [INFO] [stderr] warning: type `mi` should have an upper camel case name [INFO] [stderr] --> contest/src/poly_mtt_test.rs:3:6 [INFO] [stderr] | [INFO] [stderr] 3 | type mi = StaticModInt; [INFO] [stderr] | ^^ help: convert the identifier to upper camel case: `Mi` [INFO] [stderr] [INFO] [stderr] warning: type `conv` should have an upper camel case name [INFO] [stderr] --> contest/src/poly_mtt_test.rs:4:6 [INFO] [stderr] | [INFO] [stderr] 4 | type conv = ConvolutionMTT; [INFO] [stderr] | ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv` [INFO] [stderr] [INFO] [stderr] warning: unused import: `num_number::FromNumber` [INFO] [stderr] --> contest/src/poly_common.rs:1:66 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::{algebraic_structure::{Ring, Field}, math::log2_ceil, num_number::FromNumber}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> contest/src/poly_bf.rs:5:41 [INFO] [stderr] | [INFO] [stderr] 5 | pub struct ConvolutionBF(PhantomData<(T)>); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 5 - pub struct ConvolutionBF(PhantomData<(T)>); [INFO] [stderr] 5 + pub struct ConvolutionBF(PhantomData); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Convolution`, `Poly` [INFO] [stderr] --> contest/src/poly_interpolation.rs:5:12 [INFO] [stderr] | [INFO] [stderr] 5 | poly::{Convolution, Poly}, [INFO] [stderr] | ^^^^^^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Display`, `Pointer` [INFO] [stderr] --> contest/src/linear_feedback_shift_register.rs:1:64 [INFO] [stderr] | [INFO] [stderr] 1 | use std::{ops::{Index}, cmp::max, collections::VecDeque, fmt::{Display, Pointer}}; [INFO] [stderr] | ^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `debug_discard`, `debug` [INFO] [stderr] --> contest/src/linear_recurrence.rs:3:33 [INFO] [stderr] | [INFO] [stderr] 3 | macros::{should, should_eq, debug_discard, debug}, [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `linear_recurrence::kth_term_of_linear_recurrence`, `macros::debug_discard`, `num_integer::Integer`, `num_number::FromNumber` [INFO] [stderr] --> contest/src/linear_recurrence_test.rs:1:13 [INFO] [stderr] | [INFO] [stderr] 1 | ...::{linear_recurrence::kth_term_of_linear_recurrence, static_modint::{StaticModInt, MF998244353}, num_number::FromNumber, poly_bf::ConvolutionBF, num_integer::Integer, macros::debug_discar... [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: consider adding a `#[cfg(test)]` to the containing module [INFO] [stderr] --> contest/src/lib.rs:30:1 [INFO] [stderr] | [INFO] [stderr] 30 | pub mod linear_recurrence_test; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::arithmetic::IdentityMul` [INFO] [stderr] --> contest/src/linear_recurrence_test.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::arithmetic::IdentityMul; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: consider adding a `#[cfg(test)]` to the containing module [INFO] [stderr] --> contest/src/lib.rs:30:1 [INFO] [stderr] | [INFO] [stderr] 30 | pub mod linear_recurrence_test; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::arithmetic::IdentityAdd` [INFO] [stderr] --> contest/src/linear_recurrence_test.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::arithmetic::IdentityAdd; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: consider adding a `#[cfg(test)]` to the containing module [INFO] [stderr] --> contest/src/lib.rs:30:1 [INFO] [stderr] | [INFO] [stderr] 30 | pub mod linear_recurrence_test; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type `mi` should have an upper camel case name [INFO] [stderr] --> contest/src/linear_recurrence_test.rs:4:6 [INFO] [stderr] | [INFO] [stderr] 4 | type mi = StaticModInt; [INFO] [stderr] | ^^ help: convert the identifier to upper camel case: `Mi` [INFO] [stderr] [INFO] [stderr] warning: type `conv` should have an upper camel case name [INFO] [stderr] --> contest/src/linear_recurrence_test.rs:5:6 [INFO] [stderr] | [INFO] [stderr] 5 | type conv = ConvolutionBF; [INFO] [stderr] | ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv` [INFO] [stderr] [INFO] [stderr] warning: type `xorshift128p_state` should have an upper camel case name [INFO] [stderr] --> contest/src/rand.rs:4:8 [INFO] [stderr] | [INFO] [stderr] 4 | struct xorshift128p_state(u64, u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Xorshift128pState` [INFO] [stderr] [INFO] [stderr] warning: unused import: `Number` [INFO] [stderr] --> contest/src/num_real.rs:1:26 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::{num_number::{Number, FromNumber}, num_concrete::Concrete}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `str::FromStr`, `string::ParseError` [INFO] [stderr] --> contest/src/modint.rs:1:11 [INFO] [stderr] | [INFO] [stderr] 1 | use std::{str::FromStr, string::ParseError, hash::Hash}; [INFO] [stderr] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Error`, `num::ParseIntError`, `self`, `string::ParseError` [INFO] [stderr] --> contest/src/dynamic_modint.rs:2:11 [INFO] [stderr] | [INFO] [stderr] 2 | fmt::{self, Debug, Display, Error}, [INFO] [stderr] | ^^^^ ^^^^^ [INFO] [stderr] 3 | marker::PhantomData, [INFO] [stderr] 4 | num::ParseIntError, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 7 | string::ParseError, hash::Hash, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `algebraic_structure::*` [INFO] [stderr] --> contest/src/dynamic_modint.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | algebraic_structure::*, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Error`, `num::ParseIntError`, `self`, `string::ParseError` [INFO] [stderr] --> contest/src/static_modint.rs:2:11 [INFO] [stderr] | [INFO] [stderr] 2 | fmt::{self, Debug, Display, Error}, [INFO] [stderr] | ^^^^ ^^^^^ [INFO] [stderr] 3 | marker::PhantomData, [INFO] [stderr] 4 | num::ParseIntError, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 7 | string::ParseError, hash::Hash, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `algebraic_structure::*` [INFO] [stderr] --> contest/src/static_modint.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | algebraic_structure::*, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `max` [INFO] [stderr] --> contest/src/enumerate_prime.rs:1:16 [INFO] [stderr] | [INFO] [stderr] 1 | use std::cmp::{max, min}; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `IndexMut`, `ShlAssign`, `Shl` [INFO] [stderr] --> contest/src/bitset.rs:1:114 [INFO] [stderr] | [INFO] [stderr] 1 | ..., BitXor, BitAndAssign, BitOrAssign, BitXorAssign, Shl, ShlAssign, Index, IndexMut}}; [INFO] [stderr] | ^^^ ^^^^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Pointer` [INFO] [stderr] --> contest/src/num_float.rs:2:27 [INFO] [stderr] | [INFO] [stderr] 2 | fmt::{Debug, Display, Pointer}, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type `float` should have an upper camel case name [INFO] [stderr] --> contest/src/num_float.rs:14:12 [INFO] [stderr] | [INFO] [stderr] 14 | pub struct float(f64); [INFO] [stderr] | ^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Float` [INFO] [stderr] [INFO] [stderr] warning: unused import: `debug` [INFO] [stderr] --> contest/src/binary_lifting_compress_on_tree.rs:3:62 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::{algebraic_structure::Monoid, macros::{should_eq, debug}, arithmetic::{IdentityAdd, Nil}}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ops::Add` [INFO] [stderr] --> contest/src/persistent_segtree.rs:1:23 [INFO] [stderr] | [INFO] [stderr] 1 | use std::{fmt::Debug, ops::Add}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Ordering` [INFO] [stderr] --> contest/src/lichao_segtree.rs:1:17 [INFO] [stderr] | [INFO] [stderr] 1 | use std::{cmp::{Ordering, max}, mem::swap}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> contest/src/lichao_segtree.rs:76:9 [INFO] [stderr] | [INFO] [stderr] 76 | / /// [INFO] [stderr] 77 | | /// a.0 x + a.1 = b.0 x + b.1 [INFO] [stderr] 78 | | /// => x = (b.1 - a.1) / (a.0 - b.0) [INFO] [stderr] 79 | | /// [INFO] [stderr] | |_________--^ [INFO] [stderr] | | [INFO] [stderr] | rustdoc does not generate documentation for macro invocations [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stderr] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stderr] [INFO] [stderr] warning: unused import: `take` [INFO] [stderr] --> contest/src/leftist_tree.rs:1:38 [INFO] [stderr] | [INFO] [stderr] 1 | use std::{cmp::Ordering, mem::{swap, take, replace}}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `argmax_by`, `num_number::Number` [INFO] [stderr] --> contest/src/tree_diameter.rs:1:102 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::{graph::{DiEdge, WeightEdge}, tree_depth::{tree_depth, tree_depth_weight}, math::{argmax, argmax_by}, num_number::Number, num_... [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `collections::HashMap` [INFO] [stderr] --> contest/src/collection.rs:1:11 [INFO] [stderr] | [INFO] [stderr] 1 | use std::{collections::HashMap, mem::swap}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `random_permutation` [INFO] [stderr] --> contest/src/bipartite_match_kuhn.rs:3:15 [INFO] [stderr] | [INFO] [stderr] 3 | shuffle::{random_permutation, shuffle}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition: `debug` [INFO] [stderr] --> contest/src/macros.rs:44:14 [INFO] [stderr] | [INFO] [stderr] 44 | macro_rules! debug { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_macros)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused macro definition: `debug_discard` [INFO] [stderr] --> contest/src/macros.rs:58:14 [INFO] [stderr] | [INFO] [stderr] 58 | macro_rules! debug_discard { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition: `MergerImpl` [INFO] [stderr] --> contest/src/macros.rs:75:14 [INFO] [stderr] | [INFO] [stderr] 75 | macro_rules! MergerImpl { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition: `AddImpl` [INFO] [stderr] --> contest/src/macros.rs:86:14 [INFO] [stderr] | [INFO] [stderr] 86 | macro_rules! AddImpl { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition: `SubImpl` [INFO] [stderr] --> contest/src/macros.rs:99:14 [INFO] [stderr] | [INFO] [stderr] 99 | macro_rules! SubImpl { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition: `DivImpl` [INFO] [stderr] --> contest/src/macros.rs:112:14 [INFO] [stderr] | [INFO] [stderr] 112 | macro_rules! DivImpl { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition: `MulImpl` [INFO] [stderr] --> contest/src/macros.rs:125:14 [INFO] [stderr] | [INFO] [stderr] 125 | macro_rules! MulImpl { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `MergerImpl` [INFO] [stderr] --> contest/src/macros.rs:168:16 [INFO] [stderr] | [INFO] [stderr] 168 | pub (crate)use MergerImpl; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `AddImpl` [INFO] [stderr] --> contest/src/macros.rs:170:16 [INFO] [stderr] | [INFO] [stderr] 170 | pub (crate)use AddImpl; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `SubImpl` [INFO] [stderr] --> contest/src/macros.rs:172:16 [INFO] [stderr] | [INFO] [stderr] 172 | pub (crate)use SubImpl; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `MulImpl` [INFO] [stderr] --> contest/src/macros.rs:174:16 [INFO] [stderr] | [INFO] [stderr] 174 | pub (crate)use MulImpl; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `DivImpl` [INFO] [stderr] --> contest/src/macros.rs:176:16 [INFO] [stderr] | [INFO] [stderr] 176 | pub (crate)use DivImpl; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `panic` [INFO] [stderr] --> contest/src/solver.rs:1:33 [INFO] [stderr] | [INFO] [stderr] 1 | use std::{io::{Write, BufRead}, panic}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Add`, `Div`, `Mul`, `Sub` [INFO] [stderr] --> contest/src/solver.rs:2:16 [INFO] [stderr] | [INFO] [stderr] 2 | use std::ops::{Add, Sub, Mul, Div}; [INFO] [stderr] | ^^^ ^^^ ^^^ ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `poly::Poly` [INFO] [stderr] --> contest/src/solver.rs:3:62 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::{fast_input::FastInput, poly_ntt::ConvolutionNTT, poly::Poly, static_modint::{StaticModInt, MF998244353}, num_number::FromNumb... [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::algebraic_structure::*` [INFO] [stderr] --> contest/src/solver.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use crate::algebraic_structure::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type `mi` should have an upper camel case name [INFO] [stderr] --> contest/src/solver.rs:8:6 [INFO] [stderr] | [INFO] [stderr] 8 | type mi = StaticModInt; [INFO] [stderr] | ^^ help: convert the identifier to upper camel case: `Mi` [INFO] [stderr] [INFO] [stderr] warning: type `conv` should have an upper camel case name [INFO] [stderr] --> contest/src/solver.rs:9:6 [INFO] [stderr] | [INFO] [stderr] 9 | type conv = ConvolutionNTT; [INFO] [stderr] | ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv` [INFO] [stderr] [INFO] [stderr] warning: unused import: `mem::swap` [INFO] [stderr] --> contest/src/stress_external_member.rs:1:33 [INFO] [stderr] | [INFO] [stderr] 1 | use std::{io::{BufRead, Write}, mem::swap}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `num_integer::Integer` [INFO] [stderr] --> contest/src/vector_binary_subset_convolution.rs:5:42 [INFO] [stderr] | [INFO] [stderr] 5 | vector_binary_convolution::FWTLayer, num_integer::Integer [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unreachable statement [INFO] [stderr] --> contest/src/permutation.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 32 | / loop { [INFO] [stderr] 33 | | j -= 1; [INFO] [stderr] 34 | | if s[j] < s[i] { [INFO] [stderr] 35 | | swap_element(s, i, j); [INFO] [stderr] 36 | | } [INFO] [stderr] 37 | | } [INFO] [stderr] | |_____________- any code following this expression is unreachable [INFO] [stderr] 38 | s[i + 1..n].reverse(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `BufRead` [INFO] [stderr] --> contest/src/fast_input.rs:1:21 [INFO] [stderr] | [INFO] [stderr] 1 | use std::io::{self, BufRead, BufReader, Cursor}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Number` [INFO] [stderr] --> contest/src/pollard_rho.rs:7:25 [INFO] [stderr] | [INFO] [stderr] 7 | use crate::num_number::{Number, FromNumber}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `num_integer::Integer` [INFO] [stderr] --> contest/src/poly.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | num_integer::Integer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Number` [INFO] [stderr] --> contest/src/num_integer_reverse.rs:2:37 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::num_number::{FromNumber, Number}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Number` [INFO] [stderr] --> contest/src/bipartite_minimum_weight_match.rs:6:18 [INFO] [stderr] | [INFO] [stderr] 6 | num_number::{Number, FromNumber}, num_concrete::Concrete, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `num_number::Number` [INFO] [stderr] --> contest/src/bipartite_maximum_weight_match_km.rs:3:13 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::{num_number::Number, num_concrete::Concrete}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rhs` [INFO] [stderr] --> contest/src/arithmetic.rs:206:18 [INFO] [stderr] | [INFO] [stderr] 206 | fn mul(self, rhs: Nil) -> Self::Output { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rhs` [INFO] [stderr] --> contest/src/arithmetic.rs:213:18 [INFO] [stderr] | [INFO] [stderr] 213 | fn add(self, rhs: Nil) -> Self::Output { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rhs` [INFO] [stderr] --> contest/src/arithmetic.rs:220:18 [INFO] [stderr] | [INFO] [stderr] 220 | fn sub(self, rhs: Nil) -> Self::Output { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rhs` [INFO] [stderr] --> contest/src/arithmetic.rs:228:18 [INFO] [stderr] | [INFO] [stderr] 228 | fn div(self, rhs: Nil) -> Self::Output { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `other` [INFO] [stderr] --> contest/src/arithmetic.rs:233:18 [INFO] [stderr] | [INFO] [stderr] 233 | fn eq(&self, other: &Self) -> bool { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_other` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `other` [INFO] [stderr] --> contest/src/arithmetic.rs:239:27 [INFO] [stderr] | [INFO] [stderr] 239 | fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_other` [INFO] [stderr] [INFO] [stderr] warning: value assigned to `t` is never read [INFO] [stderr] --> contest/src/pollard_rho.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | let mut t = T::ZERO; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_assignments)]` on by default [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rank` [INFO] [stderr] --> contest/src/poly.rs:118:13 [INFO] [stderr] | [INFO] [stderr] 118 | let rank = self.rank(); [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_rank` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> contest/src/num_integer.rs:150:21 [INFO] [stderr] | [INFO] [stderr] 150 | let x = 0; [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stderr] ... [INFO] [stderr] 227 | IntegerImpl!(i8, i16, u8, i8); [INFO] [stderr] | ----------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> contest/src/num_integer.rs:150:21 [INFO] [stderr] | [INFO] [stderr] 150 | let x = 0; [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stderr] ... [INFO] [stderr] 228 | IntegerImpl!(u8, i16, u8, i8); [INFO] [stderr] | ----------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> contest/src/num_integer.rs:150:21 [INFO] [stderr] | [INFO] [stderr] 150 | let x = 0; [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stderr] ... [INFO] [stderr] 229 | IntegerImpl!(i16, i32, u16, i16); [INFO] [stderr] | -------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> contest/src/num_integer.rs:150:21 [INFO] [stderr] | [INFO] [stderr] 150 | let x = 0; [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stderr] ... [INFO] [stderr] 230 | IntegerImpl!(u16, u32, u16, i16); [INFO] [stderr] | -------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> contest/src/num_integer.rs:150:21 [INFO] [stderr] | [INFO] [stderr] 150 | let x = 0; [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stderr] ... [INFO] [stderr] 231 | IntegerImpl!(i32, i64, u32, i32); [INFO] [stderr] | -------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> contest/src/num_integer.rs:150:21 [INFO] [stderr] | [INFO] [stderr] 150 | let x = 0; [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stderr] ... [INFO] [stderr] 232 | IntegerImpl!(u32, u64, u32, i32); [INFO] [stderr] | -------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> contest/src/num_integer.rs:150:21 [INFO] [stderr] | [INFO] [stderr] 150 | let x = 0; [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stderr] ... [INFO] [stderr] 233 | IntegerImpl!(isize, isize, usize, isize); [INFO] [stderr] | ---------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> contest/src/num_integer.rs:150:21 [INFO] [stderr] | [INFO] [stderr] 150 | let x = 0; [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stderr] ... [INFO] [stderr] 234 | IntegerImpl!(usize, usize, usize, isize); [INFO] [stderr] | ---------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> contest/src/num_integer.rs:150:21 [INFO] [stderr] | [INFO] [stderr] 150 | let x = 0; [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stderr] ... [INFO] [stderr] 235 | IntegerImpl!(i64, i128, u64, i64); [INFO] [stderr] | --------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> contest/src/num_integer.rs:150:21 [INFO] [stderr] | [INFO] [stderr] 150 | let x = 0; [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stderr] ... [INFO] [stderr] 236 | IntegerImpl!(u64, u128, u64, i64); [INFO] [stderr] | --------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> contest/src/num_integer.rs:150:21 [INFO] [stderr] | [INFO] [stderr] 150 | let x = 0; [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stderr] ... [INFO] [stderr] 237 | IntegerImpl!(i128, i128, u128, i128); [INFO] [stderr] | ------------------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> contest/src/num_integer.rs:150:21 [INFO] [stderr] | [INFO] [stderr] 150 | let x = 0; [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stderr] ... [INFO] [stderr] 238 | IntegerImpl!(u128, u128, u128, i128); [INFO] [stderr] | ------------------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> contest/src/range_kth_smallest_persistent_segtree.rs:65:14 [INFO] [stderr] | [INFO] [stderr] 65 | |i, a, b| b - a >= k, [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> contest/src/range_tree.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | for i in 0..level { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `n` [INFO] [stderr] --> contest/src/cost_flow_augment_dijkstra.rs:65:13 [INFO] [stderr] | [INFO] [stderr] 65 | let n = self.g.len(); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `test_id` [INFO] [stderr] --> contest/src/solver.rs:10:37 [INFO] [stderr] | [INFO] [stderr] 10 | pub unsafe fn solve_one(test_id: usize, fi: &mut FastInput, fo: &mut impl Write) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_test_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `fi` [INFO] [stderr] --> contest/src/stress_external_member.rs:6:32 [INFO] [stderr] | [INFO] [stderr] 6 | pub unsafe fn brute_force(fi: &mut FastInput, fo: &mut impl Write) [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_fi` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `fo` [INFO] [stderr] --> contest/src/stress_external_member.rs:6:57 [INFO] [stderr] | [INFO] [stderr] 6 | pub unsafe fn brute_force(fi: &mut FastInput, fo: &mut impl Write) [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_fo` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rng` [INFO] [stderr] --> contest/src/stress_external_member.rs:12:22 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn generate_test(rng: &mut Rng, fo: &mut impl Write) { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_rng` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `fo` [INFO] [stderr] --> contest/src/stress_external_member.rs:12:37 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn generate_test(rng: &mut Rng, fo: &mut impl Write) { [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_fo` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `k` [INFO] [stderr] --> contest/src/vector_matrix.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | let k = lhs.m; [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> contest/src/math.rs:133:32 [INFO] [stderr] | [INFO] [stderr] 133 | pub fn inverse_batch(mut data: &[T]) -> Vec { [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> contest/src/pollard_rho.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | let mut c = random(n - T::ONE) + T::ONE; [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> contest/src/poly_fft.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | let mut tn = ::from(n); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> contest/src/poly.rs:110:17 [INFO] [stderr] | [INFO] [stderr] 110 | let mut ans = self.exp0((n + 1) / 2); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> contest/src/poly.rs:111:17 [INFO] [stderr] | [INFO] [stderr] 111 | let mut ln = ans.clone().ln(n); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> contest/src/poly.rs:138:38 [INFO] [stderr] | [INFO] [stderr] 138 | pub fn downgrade_mod(self: Self, mut n: impl Iterator) -> Self { [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> contest/src/poly.rs:225:43 [INFO] [stderr] | [INFO] [stderr] 225 | pub fn convolution_delta(mut a: Self, mut b: Self) -> Self { [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> contest/src/poly.rs:228:13 [INFO] [stderr] | [INFO] [stderr] 228 | let mut res = C::convolution(a.0, b.0); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> contest/src/poly.rs:281:22 [INFO] [stderr] | [INFO] [stderr] 281 | pub fn batch_mul(mut polys: &mut [Self]) -> Self { [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> contest/src/poly.rs:296:18 [INFO] [stderr] | [INFO] [stderr] 296 | fn into_iter(mut self) -> std::vec::IntoIter { [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> contest/src/poly_common.rs:8:30 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn poly_modular(mut p: Vec, len: usize) -> Vec { [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> contest/src/poly_interpolation.rs:19:13 [INFO] [stderr] | [INFO] [stderr] 19 | let mut res = Self { [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> contest/src/treap.rs:137:30 [INFO] [stderr] | [INFO] [stderr] 137 | pub fn modify(&mut self, mut id: usize, upd: U) { [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> contest/src/link_cut_tree.rs:122:28 [INFO] [stderr] | [INFO] [stderr] 122 | pub fn init(&mut self, mut id: usize) { [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> contest/src/general_graph_match.rs:139:24 [INFO] [stderr] | [INFO] [stderr] 139 | pub fn mate(&self, mut i: usize) -> Option { [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> contest/src/bipartite_maximum_weight_match_km.rs:60:17 [INFO] [stderr] | [INFO] [stderr] 60 | let mut x = queue[qs]; [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> contest/src/bipartite_maximum_weight_match_km.rs:67:21 [INFO] [stderr] | [INFO] [stderr] 67 | let mut tmp = row.left_label[x] + row.right_label[y] - row.table[x][y]; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> contest/src/bipartite_maximum_weight_match_km.rs:123:13 [INFO] [stderr] | [INFO] [stderr] 123 | let mut pre_x = y_pre[end_y]; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> contest/src/bipartite_maximum_weight_match_km.rs:124:13 [INFO] [stderr] | [INFO] [stderr] 124 | let mut pre_y = row.left_mate[pre_x]; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> contest/src/macros.rs:67:13 [INFO] [stderr] | [INFO] [stderr] 67 | let mut $var $(: $t)? = $fi.read(); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] ::: contest/src/solver.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | / input!{ [INFO] [stderr] 12 | | fi, [INFO] [stderr] 13 | | d: usize, [INFO] [stderr] 14 | | k: u64, [INFO] [stderr] 15 | | } [INFO] [stderr] | |_____- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> contest/src/solver.rs:19:9 [INFO] [stderr] | [INFO] [stderr] 19 | let mut c = c.iter().rev().map(|x| mi::zero() - *x).collect(); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: static variable `mod2` should have an upper case name [INFO] [stderr] --> contest/src/poly_mtt.rs:28:8 [INFO] [stderr] | [INFO] [stderr] 28 | static mod2: i64 = M0 * M1; [INFO] [stderr] | ^^^^ help: convert the identifier to upper case: `MOD2` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stderr] [INFO] [stderr] warning: static variable `inv10` should have an upper case name [INFO] [stderr] --> contest/src/poly_mtt.rs:29:8 [INFO] [stderr] | [INFO] [stderr] 29 | static inv10: i64 = 208783132; [INFO] [stderr] | ^^^^^ help: convert the identifier to upper case: `INV10` [INFO] [stderr] [INFO] [stderr] warning: static variable `inv01` should have an upper case name [INFO] [stderr] --> contest/src/poly_mtt.rs:30:8 [INFO] [stderr] | [INFO] [stderr] 30 | static inv01: i64 = 554580198; [INFO] [stderr] | ^^^^^ help: convert the identifier to upper case: `INV01` [INFO] [stderr] [INFO] [stderr] warning: static variable `inv012` should have an upper case name [INFO] [stderr] --> contest/src/poly_mtt.rs:31:8 [INFO] [stderr] | [INFO] [stderr] 31 | static inv012: i64 = 29562547; [INFO] [stderr] | ^^^^^^ help: convert the identifier to upper case: `INV012` [INFO] [stderr] [INFO] [stderr] warning: static variable `p1inv10` should have an upper case name [INFO] [stderr] --> contest/src/poly_mtt.rs:32:8 [INFO] [stderr] | [INFO] [stderr] 32 | static p1inv10: i64 = 208416582520653596; [INFO] [stderr] | ^^^^^^^ help: convert the identifier to upper case: `P1INV10` [INFO] [stderr] [INFO] [stderr] warning: static variable `p0inv01` should have an upper case name [INFO] [stderr] --> contest/src/poly_mtt.rs:33:8 [INFO] [stderr] | [INFO] [stderr] 33 | static p0inv01: i64 = 260520730147305702; [INFO] [stderr] | ^^^^^^^ help: convert the identifier to upper case: `P0INV01` [INFO] [stderr] [INFO] [stderr] warning: variable `C` should have a snake case name [INFO] [stderr] --> contest/src/poly.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | let C = Self::inverse_internal(p.split_at(prev_mod).0); [INFO] [stderr] | ^ help: convert the identifier to snake case (notice the capitalization): `c` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_snake_case)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable `C` should have a snake case name [INFO] [stderr] --> contest/src/poly.rs:39:13 [INFO] [stderr] | [INFO] [stderr] 39 | let C = poly_extend(C, proper_len); [INFO] [stderr] | ^ help: convert the identifier to snake case (notice the capitalization): `c` [INFO] [stderr] [INFO] [stderr] warning: variable `A` should have a snake case name [INFO] [stderr] --> contest/src/poly.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | let A = p.to_owned(); [INFO] [stderr] | ^ help: convert the identifier to snake case: `a` [INFO] [stderr] [INFO] [stderr] warning: variable `A` should have a snake case name [INFO] [stderr] --> contest/src/poly.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | let A = poly_extend(A, proper_len); [INFO] [stderr] | ^ help: convert the identifier to snake case: `a` [INFO] [stderr] [INFO] [stderr] warning: variable `AC` should have a snake case name [INFO] [stderr] --> contest/src/poly.rs:43:17 [INFO] [stderr] | [INFO] [stderr] 43 | let mut AC = poly_extend(Self::convolution(A, C.clone()), m); [INFO] [stderr] | ^^ help: convert the identifier to snake case: `ac` [INFO] [stderr] [INFO] [stderr] warning: static variable `singleton` should have an upper case name [INFO] [stderr] --> contest/src/rand.rs:51:16 [INFO] [stderr] | [INFO] [stderr] 51 | static mut singleton: Option = None; [INFO] [stderr] | ^^^^^^^^^ help: convert the identifier to upper case: `SINGLETON` [INFO] [stderr] [INFO] [stderr] warning: static variable `singleton` should have an upper case name [INFO] [stderr] --> contest/src/dynamic_modint.rs:84:28 [INFO] [stderr] | [INFO] [stderr] 84 | static mut singleton: Modulus<$T> = Modulus { [INFO] [stderr] | ^^^^^^^^^ help: convert the identifier to upper case: `SINGLETON` [INFO] [stderr] ... [INFO] [stderr] 96 | DynamicModulusFactoryImpl!(MF32, u32); [INFO] [stderr] | ------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: static variable `singleton` should have an upper case name [INFO] [stderr] --> contest/src/dynamic_modint.rs:84:28 [INFO] [stderr] | [INFO] [stderr] 84 | static mut singleton: Modulus<$T> = Modulus { [INFO] [stderr] | ^^^^^^^^^ help: convert the identifier to upper case: `SINGLETON` [INFO] [stderr] ... [INFO] [stderr] 97 | DynamicModulusFactoryImpl!(MF64, u64); [INFO] [stderr] | ------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: static variable `phi` should have an upper case name [INFO] [stderr] --> contest/src/enumerate_prime.rs:46:12 [INFO] [stderr] | [INFO] [stderr] 46 | static phi: [usize; 10] = [ [INFO] [stderr] | ^^^ help: convert the identifier to upper case: `PHI` [INFO] [stderr] [INFO] [stderr] warning: structure field `L` should have a snake case name [INFO] [stderr] --> contest/src/segtree.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | L: usize, [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: structure field `R` should have a snake case name [INFO] [stderr] --> contest/src/segtree.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | R: usize, [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: variable `L` should have a snake case name [INFO] [stderr] --> contest/src/segtree.rs:68:16 [INFO] [stderr] | [INFO] [stderr] 68 | pub fn new(L: usize, R: usize, f: impl Fn(usize) -> S) -> Self { [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: variable `R` should have a snake case name [INFO] [stderr] --> contest/src/segtree.rs:68:26 [INFO] [stderr] | [INFO] [stderr] 68 | pub fn new(L: usize, R: usize, f: impl Fn(usize) -> S) -> Self { [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: variable `L` should have a snake case name [INFO] [stderr] --> contest/src/segtree.rs:106:43 [INFO] [stderr] | [INFO] [stderr] 106 | fn update_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize, u: U) { [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: variable `R` should have a snake case name [INFO] [stderr] --> contest/src/segtree.rs:106:53 [INFO] [stderr] | [INFO] [stderr] 106 | fn update_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize, u: U) { [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: variable `L` should have a snake case name [INFO] [stderr] --> contest/src/segtree.rs:121:42 [INFO] [stderr] | [INFO] [stderr] 121 | fn query_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S { [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: variable `R` should have a snake case name [INFO] [stderr] --> contest/src/segtree.rs:121:52 [INFO] [stderr] | [INFO] [stderr] 121 | fn query_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S { [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: structure field `L` should have a snake case name [INFO] [stderr] --> contest/src/segtree_beat_ext.rs:49:5 [INFO] [stderr] | [INFO] [stderr] 49 | L: usize, [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: structure field `R` should have a snake case name [INFO] [stderr] --> contest/src/segtree_beat_ext.rs:50:5 [INFO] [stderr] | [INFO] [stderr] 50 | R: usize, [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: variable `L` should have a snake case name [INFO] [stderr] --> contest/src/segtree_beat_ext.rs:200:39 [INFO] [stderr] | [INFO] [stderr] 200 | pub fn query_sum(self: &mut Self, L: usize, R: usize) -> T { [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: variable `R` should have a snake case name [INFO] [stderr] --> contest/src/segtree_beat_ext.rs:200:49 [INFO] [stderr] | [INFO] [stderr] 200 | pub fn query_sum(self: &mut Self, L: usize, R: usize) -> T { [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: variable `L` should have a snake case name [INFO] [stderr] --> contest/src/segtree_beat_ext.rs:204:52 [INFO] [stderr] | [INFO] [stderr] 204 | fn query_sum_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T { [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: variable `R` should have a snake case name [INFO] [stderr] --> contest/src/segtree_beat_ext.rs:204:62 [INFO] [stderr] | [INFO] [stderr] 204 | fn query_sum_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T { [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: variable `L` should have a snake case name [INFO] [stderr] --> contest/src/segtree_beat_ext.rs:217:39 [INFO] [stderr] | [INFO] [stderr] 217 | pub fn query_max(self: &mut Self, L: usize, R: usize) -> T { [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: variable `R` should have a snake case name [INFO] [stderr] --> contest/src/segtree_beat_ext.rs:217:49 [INFO] [stderr] | [INFO] [stderr] 217 | pub fn query_max(self: &mut Self, L: usize, R: usize) -> T { [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: variable `L` should have a snake case name [INFO] [stderr] --> contest/src/segtree_beat_ext.rs:221:52 [INFO] [stderr] | [INFO] [stderr] 221 | fn query_max_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T { [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: variable `R` should have a snake case name [INFO] [stderr] --> contest/src/segtree_beat_ext.rs:221:62 [INFO] [stderr] | [INFO] [stderr] 221 | fn query_max_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T { [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: variable `L` should have a snake case name [INFO] [stderr] --> contest/src/segtree_beat_ext.rs:235:39 [INFO] [stderr] | [INFO] [stderr] 235 | pub fn query_min(self: &mut Self, L: usize, R: usize) -> T { [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: variable `R` should have a snake case name [INFO] [stderr] --> contest/src/segtree_beat_ext.rs:235:49 [INFO] [stderr] | [INFO] [stderr] 235 | pub fn query_min(self: &mut Self, L: usize, R: usize) -> T { [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: variable `L` should have a snake case name [INFO] [stderr] --> contest/src/segtree_beat_ext.rs:239:52 [INFO] [stderr] | [INFO] [stderr] 239 | fn query_min_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T { [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: variable `R` should have a snake case name [INFO] [stderr] --> contest/src/segtree_beat_ext.rs:239:62 [INFO] [stderr] | [INFO] [stderr] 239 | fn query_min_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T { [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: variable `L` should have a snake case name [INFO] [stderr] --> contest/src/segtree_beat_ext.rs:253:40 [INFO] [stderr] | [INFO] [stderr] 253 | pub fn update_min(self: &mut Self, L: usize, R: usize, u: T) { [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: variable `R` should have a snake case name [INFO] [stderr] --> contest/src/segtree_beat_ext.rs:253:50 [INFO] [stderr] | [INFO] [stderr] 253 | pub fn update_min(self: &mut Self, L: usize, R: usize, u: T) { [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: variable `L` should have a snake case name [INFO] [stderr] --> contest/src/segtree_beat_ext.rs:261:9 [INFO] [stderr] | [INFO] [stderr] 261 | L: usize, [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: variable `R` should have a snake case name [INFO] [stderr] --> contest/src/segtree_beat_ext.rs:262:9 [INFO] [stderr] | [INFO] [stderr] 262 | R: usize, [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: variable `L` should have a snake case name [INFO] [stderr] --> contest/src/segtree_beat_ext.rs:286:40 [INFO] [stderr] | [INFO] [stderr] 286 | pub fn update_max(self: &mut Self, L: usize, R: usize, u: T) { [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: variable `R` should have a snake case name [INFO] [stderr] --> contest/src/segtree_beat_ext.rs:286:50 [INFO] [stderr] | [INFO] [stderr] 286 | pub fn update_max(self: &mut Self, L: usize, R: usize, u: T) { [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: variable `L` should have a snake case name [INFO] [stderr] --> contest/src/segtree_beat_ext.rs:294:9 [INFO] [stderr] | [INFO] [stderr] 294 | L: usize, [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: variable `R` should have a snake case name [INFO] [stderr] --> contest/src/segtree_beat_ext.rs:295:9 [INFO] [stderr] | [INFO] [stderr] 295 | R: usize, [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: variable `L` should have a snake case name [INFO] [stderr] --> contest/src/segtree_beat_ext.rs:319:42 [INFO] [stderr] | [INFO] [stderr] 319 | pub fn update_value(self: &mut Self, L: usize, R: usize, u: T) { [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: variable `R` should have a snake case name [INFO] [stderr] --> contest/src/segtree_beat_ext.rs:319:52 [INFO] [stderr] | [INFO] [stderr] 319 | pub fn update_value(self: &mut Self, L: usize, R: usize, u: T) { [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: variable `L` should have a snake case name [INFO] [stderr] --> contest/src/segtree_beat_ext.rs:327:9 [INFO] [stderr] | [INFO] [stderr] 327 | L: usize, [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: variable `R` should have a snake case name [INFO] [stderr] --> contest/src/segtree_beat_ext.rs:328:9 [INFO] [stderr] | [INFO] [stderr] 328 | R: usize, [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: structure field `L` should have a snake case name [INFO] [stderr] --> contest/src/persistent_segtree.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | pub L: usize, [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: structure field `R` should have a snake case name [INFO] [stderr] --> contest/src/persistent_segtree.rs:13:9 [INFO] [stderr] | [INFO] [stderr] 13 | pub R: usize, [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: structure field `L` should have a snake case name [INFO] [stderr] --> contest/src/persistent_segtree.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | L: usize, [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: structure field `R` should have a snake case name [INFO] [stderr] --> contest/src/persistent_segtree.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | R: usize, [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: variable `L` should have a snake case name [INFO] [stderr] --> contest/src/persistent_segtree.rs:56:16 [INFO] [stderr] | [INFO] [stderr] 56 | pub fn new(L: usize, R: usize, nil_sum: S) -> Self { [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: variable `R` should have a snake case name [INFO] [stderr] --> contest/src/persistent_segtree.rs:56:26 [INFO] [stderr] | [INFO] [stderr] 56 | pub fn new(L: usize, R: usize, nil_sum: S) -> Self { [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: variable `L` should have a snake case name [INFO] [stderr] --> contest/src/persistent_segtree.rs:110:38 [INFO] [stderr] | [INFO] [stderr] 110 | fn query_rec(&self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S { [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: variable `R` should have a snake case name [INFO] [stderr] --> contest/src/persistent_segtree.rs:110:48 [INFO] [stderr] | [INFO] [stderr] 110 | fn query_rec(&self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S { [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: variable `L` should have a snake case name [INFO] [stderr] --> contest/src/persistent_segtree.rs:249:9 [INFO] [stderr] | [INFO] [stderr] 249 | L: usize, [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: variable `R` should have a snake case name [INFO] [stderr] --> contest/src/persistent_segtree.rs:250:9 [INFO] [stderr] | [INFO] [stderr] 250 | R: usize, [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: variable `L` should have a snake case name [INFO] [stderr] --> contest/src/persistent_segtree.rs:283:9 [INFO] [stderr] | [INFO] [stderr] 283 | L: usize, [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: variable `R` should have a snake case name [INFO] [stderr] --> contest/src/persistent_segtree.rs:284:9 [INFO] [stderr] | [INFO] [stderr] 284 | R: usize, [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: variable `L` should have a snake case name [INFO] [stderr] --> contest/src/lichao_segtree.rs:84:30 [INFO] [stderr] | [INFO] [stderr] 84 | pub fn insert(&mut self, L: T, R: T, a: T, b: T) { [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: variable `R` should have a snake case name [INFO] [stderr] --> contest/src/lichao_segtree.rs:84:36 [INFO] [stderr] | [INFO] [stderr] 84 | pub fn insert(&mut self, L: T, R: T, a: T, b: T) { [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: variable `L` should have a snake case name [INFO] [stderr] --> contest/src/lichao_segtree.rs:85:13 [INFO] [stderr] | [INFO] [stderr] 85 | let L = first_true(0, self.1.len() - 1, |&x| self.1[x] >= L); [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: variable `R` should have a snake case name [INFO] [stderr] --> contest/src/lichao_segtree.rs:86:13 [INFO] [stderr] | [INFO] [stderr] 86 | let R = last_true(0, self.1.len() - 1, |&x| self.1[x] <= R); [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: variable `L` should have a snake case name [INFO] [stderr] --> contest/src/lichao_segtree.rs:87:22 [INFO] [stderr] | [INFO] [stderr] 87 | if let (Some(L), Some(R)) = (L, R) { [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: variable `R` should have a snake case name [INFO] [stderr] --> contest/src/lichao_segtree.rs:87:31 [INFO] [stderr] | [INFO] [stderr] 87 | if let (Some(L), Some(R)) = (L, R) { [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: variable `L` should have a snake case name [INFO] [stderr] --> contest/src/lichao_segtree.rs:95:9 [INFO] [stderr] | [INFO] [stderr] 95 | L: usize, [INFO] [stderr] | ^ help: convert the identifier to snake case: `l` [INFO] [stderr] [INFO] [stderr] warning: variable `R` should have a snake case name [INFO] [stderr] --> contest/src/lichao_segtree.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | R: usize, [INFO] [stderr] | ^ help: convert the identifier to snake case: `r` [INFO] [stderr] [INFO] [stderr] warning: variable `leftSubset` should have a snake case name [INFO] [stderr] --> contest/src/maximum_independent_set.rs:62:13 [INFO] [stderr] | [INFO] [stderr] 62 | let leftSubset = subsets[(mask & (!nearby[i])) as usize]; [INFO] [stderr] | ^^^^^^^^^^ help: convert the identifier to snake case: `left_subset` [INFO] [stderr] [INFO] [stderr] warning: variable `S` should have a snake case name [INFO] [stderr] --> contest/src/bipartite_maximum_weight_match_km.rs:50:13 [INFO] [stderr] | [INFO] [stderr] 50 | let mut S = vec![false; n]; [INFO] [stderr] | ^ help: convert the identifier to snake case (notice the capitalization): `s` [INFO] [stderr] [INFO] [stderr] warning: variable `T` should have a snake case name [INFO] [stderr] --> contest/src/bipartite_maximum_weight_match_km.rs:51:13 [INFO] [stderr] | [INFO] [stderr] 51 | let mut T = vec![false; n]; [INFO] [stderr] | ^ help: convert the identifier to snake case: `t` [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> contest/src/solver.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | writeln!(fo, "{}", kth); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: variable `T` should have a snake case name [INFO] [stderr] --> contest/src/vector_binary_subset_convolution.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | let mut T = vec![zero; n]; [INFO] [stderr] | ^ help: convert the identifier to snake case: `t` [INFO] [stderr] [INFO] [stderr] warning: `contest` (lib) generated 198 warnings (1 duplicate) [INFO] [stderr] warning: `contest` (lib test) generated 193 warnings (193 duplicates) [INFO] [stderr] warning: unused import: `stress::stress` [INFO] [stderr] --> contest/src/main.rs:3:36 [INFO] [stderr] | [INFO] [stderr] 3 | use contest::{solver::solve_multi, stress::stress}; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `run_in_new_thread` [INFO] [stderr] --> contest/src/main.rs:15:11 [INFO] [stderr] | [INFO] [stderr] 15 | unsafe fn run_in_new_thread() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> contest/src/main.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | / thread::Builder::new() [INFO] [stderr] 17 | | .stack_size(256 << 20) [INFO] [stderr] 18 | | .spawn(|| {run_in_current_thread();}) [INFO] [stderr] 19 | | .unwrap() [INFO] [stderr] 20 | | .join(); [INFO] [stderr] | |____________^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: `contest` (bin "contest" test) generated 3 warnings [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.04s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/contest-55ad9dcead12c501) [INFO] [stdout] running 8 tests [INFO] [stdout] test poly_mtt_test::test_1 ... ok [INFO] [stdout] test poly_mtt_test::test_2 ... ok [INFO] [stdout] test poly_mtt_test::test_3 ... ok [INFO] [stdout] test poly_ntt_test::test_0 ... ok [INFO] [stdout] test poly_ntt_test::test_1 ... ok [INFO] [stdout] test linear_recurrence_test::test_0 ... ok [INFO] [stdout] test fast_input_test::tests::test_read ... ok [INFO] [stdout] test enumerate_prime::test_0 ... ok [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/contest-a6aa7a1be193923b) [INFO] [stdout] [INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.78s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests contest [INFO] [stderr] warning: type `mi0` should have an upper camel case name [INFO] [stderr] --> /opt/rustwide/workdir/contest/src/poly_mtt.rs:17:6 [INFO] [stderr] | [INFO] [stderr] 17 | type mi0 = StaticModInt; [INFO] [stderr] | ^^^ help: convert the identifier to upper camel case: `Mi0` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stderr] [INFO] [stderr] warning: type `mi1` should have an upper camel case name [INFO] [stderr] --> /opt/rustwide/workdir/contest/src/poly_mtt.rs:18:6 [INFO] [stderr] | [INFO] [stderr] 18 | type mi1 = StaticModInt; [INFO] [stderr] | ^^^ help: convert the identifier to upper camel case: `Mi1` [INFO] [stderr] [INFO] [stderr] warning: type `mi2` should have an upper camel case name [INFO] [stderr] --> /opt/rustwide/workdir/contest/src/poly_mtt.rs:19:6 [INFO] [stderr] | [INFO] [stderr] 19 | type mi2 = StaticModInt; [INFO] [stderr] | ^^^ help: convert the identifier to upper camel case: `Mi2` [INFO] [stderr] [INFO] [stderr] warning: type `cv0` should have an upper camel case name [INFO] [stderr] --> /opt/rustwide/workdir/contest/src/poly_mtt.rs:21:6 [INFO] [stderr] | [INFO] [stderr] 21 | type cv0 = ConvolutionNTT; [INFO] [stderr] | ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv0` [INFO] [stderr] [INFO] [stderr] warning: type `cv1` should have an upper camel case name [INFO] [stderr] --> /opt/rustwide/workdir/contest/src/poly_mtt.rs:22:6 [INFO] [stderr] | [INFO] [stderr] 22 | type cv1 = ConvolutionNTT; [INFO] [stderr] | ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv1` [INFO] [stderr] [INFO] [stderr] warning: type `cv2` should have an upper camel case name [INFO] [stderr] --> /opt/rustwide/workdir/contest/src/poly_mtt.rs:23:6 [INFO] [stderr] | [INFO] [stderr] 23 | type cv2 = ConvolutionNTT; [INFO] [stderr] | ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv2` [INFO] [stderr] [INFO] [stderr] warning: type `mi` should have an upper camel case name [INFO] [stderr] --> /opt/rustwide/workdir/contest/src/poly_ntt_test.rs:3:6 [INFO] [stderr] | [INFO] [stderr] 3 | type mi = StaticModInt; [INFO] [stderr] | ^^ help: convert the identifier to upper camel case: `Mi` [INFO] [stderr] [INFO] [stderr] warning: type `conv` should have an upper camel case name [INFO] [stderr] --> /opt/rustwide/workdir/contest/src/poly_ntt_test.rs:4:6 [INFO] [stderr] | [INFO] [stderr] 4 | type conv = ConvolutionNTT; [INFO] [stderr] | ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv` [INFO] [stderr] [INFO] [stderr] warning: type `mi` should have an upper camel case name [INFO] [stderr] --> /opt/rustwide/workdir/contest/src/poly_mtt_test.rs:3:6 [INFO] [stderr] | [INFO] [stderr] 3 | type mi = StaticModInt; [INFO] [stderr] | ^^ help: convert the identifier to upper camel case: `Mi` [INFO] [stderr] [INFO] [stderr] warning: type `conv` should have an upper camel case name [INFO] [stderr] --> /opt/rustwide/workdir/contest/src/poly_mtt_test.rs:4:6 [INFO] [stderr] | [INFO] [stderr] 4 | type conv = ConvolutionMTT; [INFO] [stderr] | ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv` [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> /opt/rustwide/workdir/contest/src/poly_bf.rs:5:41 [INFO] [stderr] | [INFO] [stderr] 5 | pub struct ConvolutionBF(PhantomData<(T)>); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 5 - pub struct ConvolutionBF(PhantomData<(T)>); [INFO] [stderr] 5 + pub struct ConvolutionBF(PhantomData); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: type `mi` should have an upper camel case name [INFO] [stderr] --> /opt/rustwide/workdir/contest/src/linear_recurrence_test.rs:4:6 [INFO] [stderr] | [INFO] [stderr] 4 | type mi = StaticModInt; [INFO] [stderr] | ^^ help: convert the identifier to upper camel case: `Mi` [INFO] [stderr] [INFO] [stderr] warning: type `conv` should have an upper camel case name [INFO] [stderr] --> /opt/rustwide/workdir/contest/src/linear_recurrence_test.rs:5:6 [INFO] [stderr] | [INFO] [stderr] 5 | type conv = ConvolutionBF; [INFO] [stderr] | ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv` [INFO] [stderr] [INFO] [stderr] warning: type `xorshift128p_state` should have an upper camel case name [INFO] [stderr] --> /opt/rustwide/workdir/contest/src/rand.rs:4:8 [INFO] [stderr] | [INFO] [stderr] 4 | struct xorshift128p_state(u64, u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Xorshift128pState` [INFO] [stderr] [INFO] [stderr] warning: type `float` should have an upper camel case name [INFO] [stderr] --> /opt/rustwide/workdir/contest/src/num_float.rs:14:12 [INFO] [stderr] | [INFO] [stderr] 14 | pub struct float(f64); [INFO] [stderr] | ^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Float` [INFO] [stderr] [INFO] [stderr] warning: type `mi` should have an upper camel case name [INFO] [stderr] --> /opt/rustwide/workdir/contest/src/solver.rs:8:6 [INFO] [stderr] | [INFO] [stderr] 8 | type mi = StaticModInt; [INFO] [stderr] | ^^ help: convert the identifier to upper camel case: `Mi` [INFO] [stderr] [INFO] [stderr] warning: type `conv` should have an upper camel case name [INFO] [stderr] --> /opt/rustwide/workdir/contest/src/solver.rs:9:6 [INFO] [stderr] | [INFO] [stderr] 9 | type conv = ConvolutionNTT; [INFO] [stderr] | ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv` [INFO] [stderr] [INFO] [stderr] warning: 17 warnings emitted [INFO] [stderr] [INFO] [stdout] [INFO] [stdout] running 24 tests [INFO] [stdout] test src/dsu_compress_path.rs - dsu_compress_path::DSU::union (line 76) ... ignored [INFO] [stdout] test src/range_minimum_query.rs - range_minimum_query::RangeMinimumQuery (line 24) ... FAILED [INFO] [stdout] test src/math.rs - math::log2_ceil (line 68) ... FAILED [INFO] [stdout] test src/range_kth_smallest_persistent_segtree.rs - range_kth_smallest_persistent_segtree::RangeKthSmallest (line 13) ... FAILED [INFO] [stdout] test src/num_gcd.rs - num_gcd::gcd (line 14) ... FAILED [INFO] [stdout] test src/range_tree.rs - range_tree::RangeTree (line 30) ... FAILED [INFO] [stdout] test src/lichao_segtree.rs - lichao_segtree::LichaoSegtree (line 35) ... FAILED [INFO] [stdout] test src/sparse_table.rs - sparse_table::SparseTable (line 15) ... ignored [INFO] [stdout] test src/num_gcd.rs - num_gcd::inv_mod (line 62) ... FAILED [INFO] [stdout] test src/persistent_segtree.rs - persistent_segtree::PersistentSegtree (line 22) ... FAILED [INFO] [stdout] test src/math.rs - math::log2_floor (line 48) ... FAILED [INFO] [stdout] test src/fenwick_tree.rs - fenwick_tree::FenwickTree (line 11) ... FAILED [INFO] [stdout] test src/prefix_sum.rs - prefix_sum::PrefixSum (line 10) ... FAILED [INFO] [stdout] test src/num_integer.rs - num_integer::Integer (line 11) ... FAILED [INFO] [stdout] test src/range_tree.rs - range_tree::RangeTree (line 67) ... FAILED [INFO] [stdout] test src/dsu_compress_path.rs - dsu_compress_path::DSU (line 12) ... FAILED [INFO] [stdout] test src/range_tree.rs - range_tree::RangeTree (line 75) ... FAILED [INFO] [stdout] test src/link_cut_tree.rs - link_cut_tree::LinkCutTree (line 57) ... FAILED [INFO] [stdout] test src/range_affine_range_sum.rs - range_affine_range_sum::RangeAffineRangeSum (line 67) ... FAILED [INFO] [stdout] test src/math.rs - math::pow (line 19) ... FAILED [INFO] [stdout] test src/treap.rs - treap::Treap (line 32) ... FAILED [INFO] [stdout] test src/segtree.rs - segtree::Segtree (line 21) ... FAILED [INFO] [stdout] test src/segtree_beat_ext.rs - segtree_beat_ext::SegtreeBeatExt (line 24) ... FAILED [INFO] [stdout] test src/root_tree.rs - root_tree::depth_on_tree (line 8) ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- src/range_minimum_query.rs - range_minimum_query::RangeMinimumQuery (line 24) stdout ---- [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `template` [INFO] [stdout] --> src/range_minimum_query.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 3 | use template::range_minimum_query::*; [INFO] [stdout] | ^^^^^^^^ use of undeclared crate or module `template` [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `RangeMinimumQuery` [INFO] [stdout] --> src/range_minimum_query.rs:26:11 [INFO] [stdout] | [INFO] [stdout] 4 | let rmq = RangeMinimumQuery::new(vec![1, 5, 2, 4, 3]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 2 | use contest::range_minimum_query::RangeMinimumQuery; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0433`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/math.rs - math::log2_ceil (line 68) stdout ---- [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `template` [INFO] [stdout] --> src/math.rs:69:5 [INFO] [stdout] | [INFO] [stdout] 3 | use template::math::*; [INFO] [stdout] | ^^^^^^^^ use of undeclared crate or module `template` [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `log2_ceil` in this scope [INFO] [stdout] --> src/math.rs:70:15 [INFO] [stdout] | [INFO] [stdout] 4 | assert_eq!(0, log2_ceil(1)); [INFO] [stdout] | ^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 2 | use contest::math::log2_ceil; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `log2_ceil` in this scope [INFO] [stdout] --> src/math.rs:71:15 [INFO] [stdout] | [INFO] [stdout] 5 | assert_eq!(0, log2_ceil(0)); [INFO] [stdout] | ^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 2 | use contest::math::log2_ceil; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `log2_ceil` in this scope [INFO] [stdout] --> src/math.rs:72:15 [INFO] [stdout] | [INFO] [stdout] 6 | assert_eq!(1, log2_ceil(2)); [INFO] [stdout] | ^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 2 | use contest::math::log2_ceil; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `log2_ceil` in this scope [INFO] [stdout] --> src/math.rs:73:15 [INFO] [stdout] | [INFO] [stdout] 7 | assert_eq!(2, log2_ceil(3)); [INFO] [stdout] | ^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 2 | use contest::math::log2_ceil; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 5 previous errors [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0425, E0433. [INFO] [stdout] For more information about an error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/range_kth_smallest_persistent_segtree.rs - range_kth_smallest_persistent_segtree::RangeKthSmallest (line 13) stdout ---- [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `template` [INFO] [stdout] --> src/range_kth_smallest_persistent_segtree.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 3 | use template::range_kth_smallest_persistent_segtree::*; [INFO] [stdout] | ^^^^^^^^ use of undeclared crate or module `template` [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `RangeKthSmallest` [INFO] [stdout] --> src/range_kth_smallest_persistent_segtree.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 4 | let rks = RangeKthSmallest::new(&vec![2, 1, 4, 3], i32::cmp); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 2 | use contest::range_kth_smallest_persistent_segtree::RangeKthSmallest; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0433`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/num_gcd.rs - num_gcd::gcd (line 14) stdout ---- [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `template` [INFO] [stdout] --> src/num_gcd.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 3 | use template::num_gcd::gcd; [INFO] [stdout] | ^^^^^^^^ use of undeclared crate or module `template` [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `gcd` in this scope [INFO] [stdout] --> src/num_gcd.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 4 | assert_eq!(gcd(2, 3), 1); [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 2 | use contest::num_gcd::gcd; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `gcd` in this scope [INFO] [stdout] --> src/num_gcd.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 5 | assert_eq!(gcd(6, 9), 3); [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 2 | use contest::num_gcd::gcd; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 3 previous errors [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0425, E0433. [INFO] [stdout] For more information about an error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/range_tree.rs - range_tree::RangeTree (line 30) stdout ---- [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `template` [INFO] [stdout] --> src/range_tree.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 3 | use template::range_tree::*; [INFO] [stdout] | ^^^^^^^^ use of undeclared crate or module `template` [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `RangeTree` [INFO] [stdout] --> src/range_tree.rs:32:14 [INFO] [stdout] | [INFO] [stdout] 4 | let mut rt = RangeTree::new(100); [INFO] [stdout] | ^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 2 | use contest::range_tree::RangeTree; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0433`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/lichao_segtree.rs - lichao_segtree::LichaoSegtree (line 35) stdout ---- [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `template` [INFO] [stdout] --> src/lichao_segtree.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 3 | use template::lichao_segtree::*; [INFO] [stdout] | ^^^^^^^^ use of undeclared crate or module `template` [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `LichaoSegtree` [INFO] [stdout] --> src/lichao_segtree.rs:37:18 [INFO] [stdout] | [INFO] [stdout] 4 | let mut lichao = LichaoSegtree::::new(0, vec![1, 3, 0, 2]); [INFO] [stdout] | ^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 2 | use contest::lichao_segtree::LichaoSegtree; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0433`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/num_gcd.rs - num_gcd::inv_mod (line 62) stdout ---- [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `template` [INFO] [stdout] --> src/num_gcd.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 3 | use template::num_gcd::inv_mod; [INFO] [stdout] | ^^^^^^^^ use of undeclared crate or module `template` [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `inv_mod` in this scope [INFO] [stdout] --> src/num_gcd.rs:64:12 [INFO] [stdout] | [INFO] [stdout] 4 | assert_eq!(inv_mod(1, 2).unwrap(), 1); [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 2 | use contest::num_gcd::inv_mod; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `inv_mod` in this scope [INFO] [stdout] --> src/num_gcd.rs:65:12 [INFO] [stdout] | [INFO] [stdout] 5 | assert_eq!(inv_mod(2, 3).unwrap(), 2); [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 2 | use contest::num_gcd::inv_mod; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `inv_mod` in this scope [INFO] [stdout] --> src/num_gcd.rs:66:9 [INFO] [stdout] | [INFO] [stdout] 6 | assert!(inv_mod(2, 4).is_none()); [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 2 | use contest::num_gcd::inv_mod; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 4 previous errors [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0425, E0433. [INFO] [stdout] For more information about an error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/persistent_segtree.rs - persistent_segtree::PersistentSegtree (line 22) stdout ---- [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `template` [INFO] [stdout] --> src/persistent_segtree.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 3 | use template::persistent_segtree::*; [INFO] [stdout] | ^^^^^^^^ use of undeclared crate or module `template` [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PersistentSegtree` [INFO] [stdout] --> src/persistent_segtree.rs:24:14 [INFO] [stdout] | [INFO] [stdout] 4 | let mut st = PersistentSegtree::new(0, 3, 0, |a, b| a + b); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 2 | use contest::persistent_segtree::PersistentSegtree; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0433`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/math.rs - math::log2_floor (line 48) stdout ---- [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `template` [INFO] [stdout] --> src/math.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 3 | use template::math::*; [INFO] [stdout] | ^^^^^^^^ use of undeclared crate or module `template` [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `log2_floor` in this scope [INFO] [stdout] --> src/math.rs:50:15 [INFO] [stdout] | [INFO] [stdout] 4 | assert_eq!(0, log2_floor(1)); [INFO] [stdout] | ^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 2 | use contest::math::log2_floor; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `log2_floor` in this scope [INFO] [stdout] --> src/math.rs:51:16 [INFO] [stdout] | [INFO] [stdout] 5 | assert_eq!(-1, log2_floor(0)); [INFO] [stdout] | ^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 2 | use contest::math::log2_floor; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `log2_floor` in this scope [INFO] [stdout] --> src/math.rs:52:15 [INFO] [stdout] | [INFO] [stdout] 6 | assert_eq!(1, log2_floor(2)); [INFO] [stdout] | ^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 2 | use contest::math::log2_floor; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `log2_floor` in this scope [INFO] [stdout] --> src/math.rs:53:15 [INFO] [stdout] | [INFO] [stdout] 7 | assert_eq!(1, log2_floor(3)); [INFO] [stdout] | ^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 2 | use contest::math::log2_floor; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 5 previous errors [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0425, E0433. [INFO] [stdout] For more information about an error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/fenwick_tree.rs - fenwick_tree::FenwickTree (line 11) stdout ---- [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `template` [INFO] [stdout] --> src/fenwick_tree.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 3 | use template::fenwick_tree::*; [INFO] [stdout] | ^^^^^^^^ use of undeclared crate or module `template` [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `FenwickTree` [INFO] [stdout] --> src/fenwick_tree.rs:13:14 [INFO] [stdout] | [INFO] [stdout] 4 | let mut ft = FenwickTree::with_initial_value(&[1, 2, 3, 4], 0, |x, y| x + y); [INFO] [stdout] | ^^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 2 | use contest::fenwick_tree::FenwickTree; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0433`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/prefix_sum.rs - prefix_sum::PrefixSum (line 10) stdout ---- [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `template` [INFO] [stdout] --> src/prefix_sum.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 4 | use template::prefix_sum::*; [INFO] [stdout] | ^^^^^^^^ use of undeclared crate or module `template` [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `template` [INFO] [stdout] --> src/prefix_sum.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 3 | use template::algebraic_structure::{Monoid, Group}; [INFO] [stdout] | ^^^^^^^^ use of undeclared crate or module `template` [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved imports `template::algebraic_structure::Monoid`, `template::algebraic_structure::Group` [INFO] [stdout] --> src/prefix_sum.rs:11:37 [INFO] [stdout] | [INFO] [stdout] 3 | use template::algebraic_structure::{Monoid, Group}; [INFO] [stdout] | ^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PrefixSum` [INFO] [stdout] --> src/prefix_sum.rs:13:10 [INFO] [stdout] | [INFO] [stdout] 5 | let ps = PrefixSum::new(vec![1, 2, 3, 4]); [INFO] [stdout] | ^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 2 | use contest::prefix_sum::PrefixSum; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 4 previous errors [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0432, E0433. [INFO] [stdout] For more information about an error, try `rustc --explain E0432`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/num_integer.rs - num_integer::Integer (line 11) stdout ---- [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `template` [INFO] [stdout] --> src/num_integer.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 3 | use template::num_integer::*; [INFO] [stdout] | ^^^^^^^^ use of undeclared crate or module `template` [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `count_leading_zero` found for type `i32` in the current scope [INFO] [stdout] --> src/num_integer.rs:14:20 [INFO] [stdout] | [INFO] [stdout] 5 | assert_eq!((-1i32).count_leading_zero(), 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ method not found in `i32` [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `count_leading_zero` found for type `i32` in the current scope [INFO] [stdout] --> src/num_integer.rs:15:17 [INFO] [stdout] | [INFO] [stdout] 6 | assert_eq!(0i32.count_leading_zero(), 32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ method not found in `i32` [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `count_leading_zero` found for type `i32` in the current scope [INFO] [stdout] --> src/num_integer.rs:16:17 [INFO] [stdout] | [INFO] [stdout] 7 | assert_eq!(2i32.count_leading_zero(), 30); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ method not found in `i32` [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `count_trailing_zero` found for type `usize` in the current scope [INFO] [stdout] --> src/num_integer.rs:17:20 [INFO] [stdout] | [INFO] [stdout] 8 | assert_eq!(10usize.count_trailing_zero(), 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ method not found in `usize` [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `count_trailing_zero` found for type `usize` in the current scope [INFO] [stdout] --> src/num_integer.rs:18:20 [INFO] [stdout] | [INFO] [stdout] 9 | assert_eq!(11usize.count_trailing_zero(), 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ method not found in `usize` [INFO] [stdout] [INFO] [stdout] error: aborting due to 6 previous errors [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0433, E0599. [INFO] [stdout] For more information about an error, try `rustc --explain E0433`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/range_tree.rs - range_tree::RangeTree (line 67) stdout ---- [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `template` [INFO] [stdout] --> src/range_tree.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 3 | use template::range_tree::*; [INFO] [stdout] | ^^^^^^^^ use of undeclared crate or module `template` [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `RangeTree` [INFO] [stdout] --> src/range_tree.rs:69:14 [INFO] [stdout] | [INFO] [stdout] 4 | let mut rt = RangeTree::new(82); [INFO] [stdout] | ^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 2 | use contest::range_tree::RangeTree; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0433`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/dsu_compress_path.rs - dsu_compress_path::DSU (line 12) stdout ---- [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `template` [INFO] [stdout] --> src/dsu_compress_path.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 4 | use template::dsu_compress_path::*; [INFO] [stdout] | ^^^^^^^^ use of undeclared crate or module `template` [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `template` [INFO] [stdout] --> src/dsu_compress_path.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 3 | use template::{algebraic_structure::{Semigroup, Group, Monoid}, arithmetic::{CommutativeAdd, IdentityAdd, Nil}}; [INFO] [stdout] | ^^^^^^^^ use of undeclared crate or module `template` [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved imports `template::algebraic_structure::Semigroup`, `template::algebraic_structure::Group`, `template::algebraic_structure::Monoid`, `template::arithmetic::CommutativeAdd`, `template::arithmetic::IdentityAdd`, `template::arithmetic::Nil` [INFO] [stdout] --> src/dsu_compress_path.rs:13:38 [INFO] [stdout] | [INFO] [stdout] 3 | use template::{algebraic_structure::{Semigroup, Group, Monoid}, arithmetic::{CommutativeAdd, IdentityAdd, Nil}}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^ ^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `DSU` [INFO] [stdout] --> src/dsu_compress_path.rs:15:15 [INFO] [stdout] | [INFO] [stdout] 5 | let mut dsu = DSU::new(vec![Nil; 5]); [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 2 | use contest::dsu_compress_path::DSU; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `Nil` in this scope [INFO] [stdout] --> src/dsu_compress_path.rs:15:29 [INFO] [stdout] | [INFO] [stdout] 5 | let mut dsu = DSU::new(vec![Nil; 5]); [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this unit struct [INFO] [stdout] | [INFO] [stdout] 2 | use contest::arithmetic::Nil; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `Nil` in this scope [INFO] [stdout] --> src/dsu_compress_path.rs:17:27 [INFO] [stdout] | [INFO] [stdout] 7 | dsu.union(0usize, 1usize, Nil); [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this unit struct [INFO] [stdout] | [INFO] [stdout] 2 | use contest::arithmetic::Nil; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `Nil` in this scope [INFO] [stdout] --> src/dsu_compress_path.rs:20:27 [INFO] [stdout] | [INFO] [stdout] 10 | dsu.union(3usize, 4usize, Nil); [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this unit struct [INFO] [stdout] | [INFO] [stdout] 2 | use contest::arithmetic::Nil; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `Nil` in this scope [INFO] [stdout] --> src/dsu_compress_path.rs:21:27 [INFO] [stdout] | [INFO] [stdout] 11 | dsu.union(1usize, 4usize, Nil); [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this unit struct [INFO] [stdout] | [INFO] [stdout] 2 | use contest::arithmetic::Nil; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 8 previous errors [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0425, E0432, E0433. [INFO] [stdout] For more information about an error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/range_tree.rs - range_tree::RangeTree (line 75) stdout ---- [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `template` [INFO] [stdout] --> src/range_tree.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 3 | use template::range_tree::*; [INFO] [stdout] | ^^^^^^^^ use of undeclared crate or module `template` [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `RangeTree` [INFO] [stdout] --> src/range_tree.rs:77:14 [INFO] [stdout] | [INFO] [stdout] 4 | let mut rt = RangeTree::new(101); [INFO] [stdout] | ^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 2 | use contest::range_tree::RangeTree; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0433`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/link_cut_tree.rs - link_cut_tree::LinkCutTree (line 57) stdout ---- [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `template` [INFO] [stdout] --> src/link_cut_tree.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 3 | use template::link_cut_tree::*; [INFO] [stdout] | ^^^^^^^^ use of undeclared crate or module `template` [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `LinkCutTree` [INFO] [stdout] --> src/link_cut_tree.rs:61:15 [INFO] [stdout] | [INFO] [stdout] 6 | let mut lct = LinkCutTree::new(5, 0, 0, mx_f, mx_f, mx_f, |x| 1); [INFO] [stdout] | ^^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 2 | use contest::link_cut_tree::LinkCutTree; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0433`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/range_affine_range_sum.rs - range_affine_range_sum::RangeAffineRangeSum (line 67) stdout ---- [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `template` [INFO] [stdout] --> src/range_affine_range_sum.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 3 | use template::range_affine_range_sum::*; [INFO] [stdout] | ^^^^^^^^ use of undeclared crate or module `template` [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `RangeAffineRangeSum` [INFO] [stdout] --> src/range_affine_range_sum.rs:69:16 [INFO] [stdout] | [INFO] [stdout] 4 | let mut rars = RangeAffineRangeSum::new(1, 10, &|x| x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 2 | use contest::range_affine_range_sum::RangeAffineRangeSum; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0433`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/math.rs - math::pow (line 19) stdout ---- [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `template` [INFO] [stdout] --> src/math.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 3 | use template::{algebraic_structure::Ring, num_integer::Integer, math::pow}; [INFO] [stdout] | ^^^^^^^^ use of undeclared crate or module `template` [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `pow` in this scope [INFO] [stdout] --> src/math.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 4 | assert_eq!(pow(5, 2), 25); [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 2 | use contest::math::pow; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `pow` in this scope [INFO] [stdout] --> src/math.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 5 | assert_eq!(pow(0, 0), 1); [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 2 | use contest::math::pow; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `pow` in this scope [INFO] [stdout] --> src/math.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 6 | assert_eq!(pow(2, 5), 32); [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 2 | use contest::math::pow; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 4 previous errors [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0425, E0433. [INFO] [stdout] For more information about an error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/treap.rs - treap::Treap (line 32) stdout ---- [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `template` [INFO] [stdout] --> src/treap.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 3 | use template::treap::*; [INFO] [stdout] | ^^^^^^^^ use of undeclared crate or module `template` [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Treap` [INFO] [stdout] --> src/treap.rs:34:13 [INFO] [stdout] | [INFO] [stdout] 4 | let mut t = Treap::::new(4, 0, 0, [INFO] [stdout] | ^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 2 | use contest::treap::Treap; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0433`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/segtree.rs - segtree::Segtree (line 21) stdout ---- [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `template` [INFO] [stdout] --> src/segtree.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 3 | use template::segtree::*; [INFO] [stdout] | ^^^^^^^^ use of undeclared crate or module `template` [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Segtree` [INFO] [stdout] --> src/segtree.rs:24:14 [INFO] [stdout] | [INFO] [stdout] 5 | let mut st = Segtree::new(0, 3, &|x: usize| x, 0, 0, |x, y| x + y, |x, y| x + y, |x, y| x + y); [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 2 | use contest::segtree::Segtree; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0433`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/segtree_beat_ext.rs - segtree_beat_ext::SegtreeBeatExt (line 24) stdout ---- [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `template` [INFO] [stdout] --> src/segtree_beat_ext.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 3 | use template::segtree_beat_ext::*; [INFO] [stdout] | ^^^^^^^^ use of undeclared crate or module `template` [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `SegtreeBeatExt` [INFO] [stdout] --> src/segtree_beat_ext.rs:27:14 [INFO] [stdout] | [INFO] [stdout] 5 | let mut st = SegtreeBeatExt::new(1, 4, |x| x); [INFO] [stdout] | ^^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 2 | use contest::segtree_beat_ext::SegtreeBeatExt; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0433`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/root_tree.rs - root_tree::depth_on_tree (line 8) stdout ---- [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `template` [INFO] [stdout] --> src/root_tree.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 3 | use template::root_tree::*; [INFO] [stdout] | ^^^^^^^^ use of undeclared crate or module `template` [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `depth_on_tree` in this scope [INFO] [stdout] --> src/root_tree.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 5 | let res = depth_on_tree(&p); [INFO] [stdout] | ^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 2 | use contest::root_tree::depth_on_tree; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0425, E0433. [INFO] [stdout] For more information about an error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] src/dsu_compress_path.rs - dsu_compress_path::DSU (line 12) [INFO] [stdout] src/fenwick_tree.rs - fenwick_tree::FenwickTree (line 11) [INFO] [stdout] src/lichao_segtree.rs - lichao_segtree::LichaoSegtree (line 35) [INFO] [stdout] src/link_cut_tree.rs - link_cut_tree::LinkCutTree (line 57) [INFO] [stdout] src/math.rs - math::log2_ceil (line 68) [INFO] [stdout] src/math.rs - math::log2_floor (line 48) [INFO] [stdout] src/math.rs - math::pow (line 19) [INFO] [stdout] src/num_gcd.rs - num_gcd::gcd (line 14) [INFO] [stdout] src/num_gcd.rs - num_gcd::inv_mod (line 62) [INFO] [stdout] src/num_integer.rs - num_integer::Integer (line 11) [INFO] [stdout] src/persistent_segtree.rs - persistent_segtree::PersistentSegtree (line 22) [INFO] [stdout] src/prefix_sum.rs - prefix_sum::PrefixSum (line 10) [INFO] [stdout] src/range_affine_range_sum.rs - range_affine_range_sum::RangeAffineRangeSum (line 67) [INFO] [stdout] src/range_kth_smallest_persistent_segtree.rs - range_kth_smallest_persistent_segtree::RangeKthSmallest (line 13) [INFO] [stdout] src/range_minimum_query.rs - range_minimum_query::RangeMinimumQuery (line 24) [INFO] [stdout] src/range_tree.rs - range_tree::RangeTree (line 30) [INFO] [stdout] src/range_tree.rs - range_tree::RangeTree (line 67) [INFO] [stdout] src/range_tree.rs - range_tree::RangeTree (line 75) [INFO] [stdout] src/root_tree.rs - root_tree::depth_on_tree (line 8) [INFO] [stdout] src/segtree.rs - segtree::Segtree (line 21) [INFO] [stdout] src/segtree_beat_ext.rs - segtree_beat_ext::SegtreeBeatExt (line 24) [INFO] [stdout] src/treap.rs - treap::Treap (line 32) [INFO] [stdout] [INFO] [stdout] test result: FAILED. 0 passed; 22 failed; 2 ignored; 0 measured; 0 filtered out; finished in 2.20s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass '--doc' [INFO] running `Command { std: "docker" "inspect" "7ccb970af3771815140f3eced965368d47b8ab09c27f56bf48c90357dabab34a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7ccb970af3771815140f3eced965368d47b8ab09c27f56bf48c90357dabab34a", kill_on_drop: false }` [INFO] [stdout] 7ccb970af3771815140f3eced965368d47b8ab09c27f56bf48c90357dabab34a