diff --git a/tessoku-book/src/bin/a43.rs b/tessoku-book/src/bin/a43.rs index 2a9506c8..2a17c164 100644 --- a/tessoku-book/src/bin/a43.rs +++ b/tessoku-book/src/bin/a43.rs @@ -1,10 +1,19 @@ -use proconio::{input, marker::Usize1}; +use proconio::input; fn main() { input! { n: usize, - a: [Usize1; n], + l: usize, + ab: [(usize, char); n], }; - let ans = n - a.len(); + let ans = ab + .into_iter() + .map(|(a, b)| match b { + 'E' => l - a, + 'W' => a, + _ => unreachable!(), + }) + .max() + .unwrap(); println!("{}", ans); } diff --git a/tessoku-book/src/bin/a44.rs b/tessoku-book/src/bin/a44.rs index 2a9506c8..3bc58551 100644 --- a/tessoku-book/src/bin/a44.rs +++ b/tessoku-book/src/bin/a44.rs @@ -3,8 +3,32 @@ use proconio::{input, marker::Usize1}; fn main() { input! { n: usize, - a: [Usize1; n], + q: usize, }; - let ans = n - a.len(); - println!("{}", ans); + let mut a = (1..=n).collect::>(); + let mut rev = false; + for _ in 0..q { + input! { + t: usize + } + match t { + 1 => { + input! { + x: Usize1, + y: usize, + } + a[if rev { n - 1 - x } else { x }] = y; + } + 2 => { + rev = !rev; + } + 3 => { + input! { + x: Usize1, + } + println!("{}", a[if rev { n - 1 - x } else { x }]); + } + _ => unreachable!(), + } + } } diff --git a/tessoku-book/src/bin/b43.rs b/tessoku-book/src/bin/b43.rs index 2a9506c8..4b2872b6 100644 --- a/tessoku-book/src/bin/b43.rs +++ b/tessoku-book/src/bin/b43.rs @@ -3,8 +3,14 @@ use proconio::{input, marker::Usize1}; fn main() { input! { n: usize, - a: [Usize1; n], + m: usize, + a: [Usize1; m], }; - let ans = n - a.len(); - println!("{}", ans); + let mut count = vec![0_usize; n]; + for a_i in a { + count[a_i] += 1; + } + for c in count { + println!("{}", m - c); + } } diff --git a/tessoku-book/src/bin/b44.rs b/tessoku-book/src/bin/b44.rs index 2a9506c8..47aed88f 100644 --- a/tessoku-book/src/bin/b44.rs +++ b/tessoku-book/src/bin/b44.rs @@ -3,8 +3,20 @@ use proconio::{input, marker::Usize1}; fn main() { input! { n: usize, - a: [Usize1; n], + a: [[usize; n]; n], + q: usize, + query: [(usize, Usize1, Usize1); q], }; - let ans = n - a.len(); - println!("{}", ans); + let mut is = (0..n).collect::>(); + for (t, x, y) in query { + match t { + 1 => { + is.swap(x, y); + } + 2 => { + println!("{}", a[is[x]][y]); + } + _ => unreachable!(), + } + } }