Submission #26365878
Source Code Expand
macro_rules! input {
(source = $s:expr, $($r:tt)*) => {
let mut iter = $s.split_whitespace();
let mut next = || { iter.next().unwrap() };
input_inner!{next, $($r)*}
};
($($r:tt)*) => {
let stdin = std::io::stdin();
let mut bytes = std::io::Read::bytes(std::io::BufReader::new(stdin.lock()));
let mut next = move || -> String{
bytes
.by_ref()
.map(|r|r.unwrap() as char)
.skip_while(|c|c.is_whitespace())
.take_while(|c|!c.is_whitespace())
.collect()
};
input_inner!{next, $($r)*}
};
}
macro_rules! input_inner {
($next:expr) => {};
($next:expr, ) => {};
($next:expr, $var:ident : $t:tt $($r:tt)*) => {
let $var = read_value!($next, $t);
input_inner!{$next $($r)*}
};
}
macro_rules! read_value {
($next:expr, ( $($t:tt),* )) => {
( $(read_value!($next, $t)),* )
};
($next:expr, [ $t:tt ; $len:expr ]) => {
(0..$len).map(|_| read_value!($next, $t)).collect::<Vec<_>>()
};
($next:expr, chars) => {
read_value!($next, String).chars().collect::<Vec<char>>()
};
($next:expr, usize1) => {
read_value!($next, usize) - 1
};
($next:expr, $t:ty) => {
$next().parse::<$t>().expect("Parse error")
};
}
fn check(a: &[usize], m: usize, key: usize) -> bool {
let mut k = 0;
let mut tmp = 0;
for aa in a {
if aa - tmp >= m {
tmp = *aa;
k += 1;
}
}
k >= key // trueならもっとmを大きくしてもいい余裕がある
}
fn binary_search(a: Vec<usize>, key: usize, mut low: usize, mut high: usize) -> usize {
while high - low > 1 {
let mid = low + (high - low) / 2;
if check(&a, mid, key) {
low = mid;
}else{
high = mid;
}
}
low
}
fn main() {
input! {
n: usize,
l: usize,
k: usize,
a: [usize;n],
}
let k = k + 1;
let mut a = a;
a.push(l);
dbg!(&a);
let ans = binary_search(a, k, 0, l);
println!("{}", ans);
}
Submission Info
| Submission Time |
|
| Task |
001 - Yokan Party(★4) |
| User |
uta8a |
| Language |
Rust (1.42.0) |
| Score |
4 |
| Code Size |
2149 Byte |
| Status |
AC |
| Exec Time |
447 ms |
| Memory |
2904 KiB |
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
4 / 4 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
01_01_sample_picture_01.txt, 01_02_sample_01.txt, 01_02_sample_02.txt, 01_02_sample_03.txt, 01_02_sample_04.txt |
| All |
01_01_sample_picture_01.txt, 01_02_sample_01.txt, 01_02_sample_02.txt, 01_02_sample_03.txt, 01_02_sample_04.txt, 02_fixed_01.txt, 02_fixed_02.txt, 02_fixed_03.txt, 03_k_sensitive_01.txt, 03_k_sensitive_02.txt, 03_k_sensitive_03.txt, 03_k_sensitive_04.txt, 04_random_small_01.txt, 04_random_small_02.txt, 04_random_small_03.txt, 05_random_bias_01.txt, 05_random_bias_02.txt, 05_random_bias_03.txt, 06_random_01.txt, 06_random_02.txt, 06_random_03.txt, 06_random_04.txt, 07_random_max_01.txt, 07_random_max_02.txt, 07_random_max_03.txt, 07_random_max_04.txt, 08_equally_01.txt, 08_equally_02.txt, 09_max_01.txt |
| Case Name |
Status |
Exec Time |
Memory |
| 01_01_sample_picture_01.txt |
AC |
6 ms |
2052 KiB |
| 01_02_sample_01.txt |
AC |
2 ms |
2116 KiB |
| 01_02_sample_02.txt |
AC |
2 ms |
2188 KiB |
| 01_02_sample_03.txt |
AC |
1 ms |
2052 KiB |
| 01_02_sample_04.txt |
AC |
2 ms |
2080 KiB |
| 02_fixed_01.txt |
AC |
2 ms |
1992 KiB |
| 02_fixed_02.txt |
AC |
439 ms |
2836 KiB |
| 02_fixed_03.txt |
AC |
443 ms |
2824 KiB |
| 03_k_sensitive_01.txt |
AC |
3 ms |
2100 KiB |
| 03_k_sensitive_02.txt |
AC |
2 ms |
2040 KiB |
| 03_k_sensitive_03.txt |
AC |
2 ms |
2088 KiB |
| 03_k_sensitive_04.txt |
AC |
2 ms |
2044 KiB |
| 04_random_small_01.txt |
AC |
2 ms |
2068 KiB |
| 04_random_small_02.txt |
AC |
2 ms |
2060 KiB |
| 04_random_small_03.txt |
AC |
2 ms |
1984 KiB |
| 05_random_bias_01.txt |
AC |
440 ms |
2856 KiB |
| 05_random_bias_02.txt |
AC |
443 ms |
2860 KiB |
| 05_random_bias_03.txt |
AC |
443 ms |
2736 KiB |
| 06_random_01.txt |
AC |
430 ms |
2836 KiB |
| 06_random_02.txt |
AC |
420 ms |
2820 KiB |
| 06_random_03.txt |
AC |
439 ms |
2832 KiB |
| 06_random_04.txt |
AC |
423 ms |
2792 KiB |
| 07_random_max_01.txt |
AC |
447 ms |
2832 KiB |
| 07_random_max_02.txt |
AC |
445 ms |
2820 KiB |
| 07_random_max_03.txt |
AC |
442 ms |
2812 KiB |
| 07_random_max_04.txt |
AC |
444 ms |
2824 KiB |
| 08_equally_01.txt |
AC |
440 ms |
2808 KiB |
| 08_equally_02.txt |
AC |
436 ms |
2904 KiB |
| 09_max_01.txt |
AC |
445 ms |
2860 KiB |