5 releases
0.2.2 | Oct 26, 2020 |
---|---|
0.2.1 | Jul 8, 2019 |
0.2.0 | Jul 8, 2019 |
0.1.1 | Aug 5, 2018 |
0.1.0 | Aug 4, 2018 |
#15 in #competitive
11KB
267 lines
comp_input
Input library for competitive programming.
Example: weighted graph as edge list
#[macro_use]
extern crate comp_input;
fn main() {
input! {
n, m: usize,
edges: [(usize1, usize1, u64); m],
}
}
The variables n
, m
and edges
then exist as local variables in scope.
List of input fragments
Fragment | Description |
---|---|
u8, u16, u32, u64, usize |
Unsigned integer (base 10) |
i8, i16, i32, i64, isize |
Signed integer (base 10, optional +/- prefix) |
usize1 |
Like usize , but subtract 1 from the result (useful for 1-based input formats) |
char |
A single character |
String |
A sequence of non-ASCII-whitespace characters |
(T1, T2), (T1, T2, T3), ... |
Heterogeneous tuple of other input fragments, read in order |
[<T>; <n: expr>] |
n items parsed against T , returned as Vec |
[<T>; const <n>] |
n items parsed against T , in an array. n must be compile-time constant |
TODO
- Allow arbitrary parse functions
- Branching
- Loops (e.g. parse until -1)
License
MIT/Apache-2.0
Dependencies
~250KB