diff --git a/storage/jungol/rs/completed/1370.rs b/storage/jungol/rs/completed/1370.rs new file mode 100644 index 0000000..a58a431 --- /dev/null +++ b/storage/jungol/rs/completed/1370.rs @@ -0,0 +1,39 @@ +use std::io::{read_to_string, stdin}; + +fn main() { + let temp = read_to_string(stdin()).unwrap(); + let mut iter = temp + .split_ascii_whitespace() + .map(|x| x.parse::().unwrap()); + + let n = iter.next().unwrap(); + + let mut arr = (0..n) + .map(|_| { + ( + iter.next().unwrap(), // idx(no.) + iter.next().unwrap(), // start + iter.next().unwrap(), // end + ) + }) + .collect::>(); + + arr.sort_by_key(|x| x.2); + + let mut selected = vec![]; + + for (i, s, e) in arr { + if selected.len() == 0 { + selected.push((i, e)); + } else { + if selected.last().unwrap().1 <= s { + selected.push((i, e)); + } + } + } + println!("{}", selected.len()); + for (i, _) in selected { + print!("{} ", i); + } + println!(); +} diff --git a/storage/jungol/rs/completed/2499.rs b/storage/jungol/rs/completed/2499.rs new file mode 100644 index 0000000..ced03e6 --- /dev/null +++ b/storage/jungol/rs/completed/2499.rs @@ -0,0 +1,33 @@ +use std::io::{read_to_string, stdin}; + +fn main() { + let temp = read_to_string(stdin()).unwrap(); + let mut iter = temp + .split_ascii_whitespace() + .map(|x| x.parse::().unwrap()); + + let n = iter.next().unwrap(); + let weights = { + let mut v = (0..n).map(|_| iter.next().unwrap()).collect::>(); + v.sort(); + + v + }; + + // we can make the range [min(S), sum(S)] + let mut res = 0; + let mut cum = 0; + for &w in weights.iter() { + if cum + 1 < w { + res = cum + 1; + break; + } + cum += w; + } + + if res == 0 { + res = cum + 1; + } + + println!("{}", res); +}