Submission #3187625
Source Code Expand
#![allow(unused_imports)] use std::io::*; use std::fmt::*; use std::str::*; use std::cmp::*; use std::collections::*; pub trait InputValue { fn parse(s: &str) -> Self; } pub fn read<T: InputValue>() -> T { let mut buf = String::new(); let _ = stdin().read_line(&mut buf); T::parse(&buf.trim()) } pub fn readn<T: InputValue>(n: usize) -> Vec<T> { let mut vec = vec![]; for _ in 0..n { vec.push(read()); } vec } pub fn readnc<T: InputValue>() -> Vec<T> { let mut vec = vec![]; let line: String = read(); for token in line.split_whitespace() { vec.push(T::parse(token)); } vec } macro_rules! parse_single_value { ($($t:ty),*) => { $( impl InputValue for $t { fn parse(s: &str) -> $t { s.parse().unwrap() } } )* } } parse_single_value!(i32, i64, f32, f64, usize, String); macro_rules! parse_tuple { ($($t:ident),*) => { impl<$($t),*> InputValue for ($($t),*) where $($t: InputValue),* { fn parse(s: &str) -> ($($t),*) { let mut tokens = s.split_whitespace(); let t = ($($t::parse(tokens.next().unwrap())),*); t } } } } parse_tuple!(A, B); parse_tuple!(A, B, C); // === type Katana = (i64, i64); fn main() { let (n, h): (usize, i64) = read(); let mut katana: Vec<Katana> = readn(n); katana.sort_by_key(|k| -k.1); let mut slash = 0; for k in &katana { slash = max(slash, k.0); } let mut best = (h + slash - 1) / slash; let mut throw = 0; for i in 0..n { throw += katana[i].1; let mut sl = i as i64 + 1; if h > throw { sl += (h - throw + slash - 1) / slash; } best = min(best, sl); } println!("{}", best); }
Submission Info
Submission Time | |
---|---|
Task | D - Katana Thrower |
User | hamadu |
Language | Rust (1.15.1) |
Score | 400 |
Code Size | 1854 Byte |
Status | AC |
Exec Time | 29 ms |
Memory | 6396 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 400 / 400 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | a01, a02, a03, a04 |
All | a01, a02, a03, a04, b05, b06, b07, b08, b09, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
a01 | AC | 2 ms | 4352 KB |
a02 | AC | 2 ms | 4352 KB |
a03 | AC | 2 ms | 4352 KB |
a04 | AC | 2 ms | 4352 KB |
b05 | AC | 2 ms | 4352 KB |
b06 | AC | 29 ms | 6396 KB |
b07 | AC | 2 ms | 4352 KB |
b08 | AC | 29 ms | 6396 KB |
b09 | AC | 2 ms | 4352 KB |
b10 | AC | 2 ms | 4352 KB |
b11 | AC | 2 ms | 4352 KB |
b12 | AC | 2 ms | 4352 KB |
b13 | AC | 19 ms | 6396 KB |
b14 | AC | 18 ms | 6396 KB |
b15 | AC | 18 ms | 6396 KB |
b16 | AC | 19 ms | 6396 KB |
b17 | AC | 28 ms | 6396 KB |
b18 | AC | 27 ms | 6396 KB |
b19 | AC | 26 ms | 6396 KB |
b20 | AC | 26 ms | 6396 KB |
b21 | AC | 28 ms | 6396 KB |
b22 | AC | 29 ms | 6396 KB |
b23 | AC | 2 ms | 4352 KB |
b24 | AC | 2 ms | 4352 KB |