mic

CI Rust 2018 1.42.0+ Crates.io Crates.io

Facilitates answering to competitive programming problems.

This crate is intended to be used with cargo-equip, which is a tool to bundle code into single .rs file.

Usage

See the documentation on Docs.rs.

Examples

rust use mic::{answer, solve};

```rust

[answer]

fn main() -> _ { 1 } // 1 → println!("{}", 1) ```

```rust

[answer(yn("Yes", "No"))]

fn main() -> _ { true } // true → "Yes" // → println!("{}", "Yes") ```

```rust

[answer(tuple(" "))]

fn main() -> _ { (42, "foo") } // (42, "foo") → "42 foo".toowned() // → println!("{}", "42 foo".toowned()) ```

```rust

[answer(join("\n"))]

fn main() -> _ { 1..=3 } // 1..=3 → "1\n2\n3".toowned() // → println!("{}", "1\n2\n3".toowned()) ```

```rust

[answer(matrix(" "))]

fn main() -> _ { vec![vec![1, 2], vec![3, 4]] } // vec![vec![1, 2], vec![3, 4]] → "1 2\n3 4".toowned() // → println!("{}", "1 2\n3 4".toowned()) ```

```rust

[answer(join(" "), map(add(1)))]

fn main() -> _ { vec![0, 2, 4] // 0-based graph node indices } // vec![0, 2, 4] → { impl Iterator } ([1, 3, 5]) // → "1 3 5".toowned() // → println!("{}", "1 3 5".toowned()) ```

```

[solve(join(" "))]

fn solve() -> _ { 1..=3 } // 1..=3 → "1 2 3".to_owned()

assert_eq!("1 2 3", solve()); ```

License

Licensed under CC0-1.0.