readput
Fast and easy stdin input parsing for competitive programming in rust.
Usage
Note: The inputs can be on the same line, or not, it doesn't make a difference. They are separated by spaces or line breaks. Excess inputs are getting cached for the next read()
call.
Create a Scanner
Create a new Scanner
. (Only ASCII support for now)
use AsciiScanner;
use Scanner;
let mut cin = new;
Read a single value
Read a single value. For non std types use impl_cin_type!(type)
before or use cin.read_cust_s()
.
Note: They also have to impl. FromStr and Debug.
let v: i128 = cin.read;
Read a tuple
Read a tuple with variable size and custom types. (Works with all types that impl. FromStr
and Debug
)
let : = cin.read;
let : = cin.read;
Read a vector of tuples
Read a vector of tuples. 3 is the number of tuples in the vector to read. (Works with all types that impl. FromStr
and Debug
)
let vec: = cin.read_vec;
Read a vector of single values
Read a vector of single values. 3 is the number of elements to read. For non std types use impl_cin_type!(type)
before or use cin.read_cust_v()
.
Note: They also have to impl. FromStr and Debug.
let vec: = cin.read_vec;
Iterate over input
Iterate over input. This will iterate forever. (Blocks until new input is entered) For non std types use impl_cin_type!(type)
before.
for in cin.