Submission #53917444
Source Code Expand
use proconio::input;
trait Bound<T> {
fn lower_bound(&self, x: &T) -> usize;
fn upper_bound(&self, x: &T) -> usize;
}
impl<T: PartialOrd> Bound<T> for [T] {
fn lower_bound(&self, x: &T) -> usize {
let (mut low, mut high) = (0, self.len());
while low + 1 < high {
let mid = (low + high) / 2;
if self[mid] < *x {
low = mid;
} else {
high = mid;
}
}
if self[low] < *x {
low + 1
} else {
low
}
}
fn upper_bound(&self, x: &T) -> usize {
let (mut low, mut high) = (0, self.len());
while low + 1 < high {
let mid = (low + high) / 2;
if self[mid] <= *x {
low = mid;
} else {
high = mid;
}
}
if self[low] <= *x {
low + 1
} else {
low
}
}
}
fn main() {
input! {n:usize,h:[i32;n]}
let mut cost = vec![i32::MAX; n];
cost[0] = 0;
for i in 0..n {
let cur_cost = cost[i];
for j in (i + 1)..n.min(i + 3) {
let c = (h[i] - h[j]).abs();
cost[j] = cost[j].min(c + cur_cost)
}
}
println!("{}", cost.last().unwrap())
}
Submission Info
| Submission Time | |
|---|---|
| Task | A - Frog 1 |
| User | tsu7magu6 |
| Language | Rust (rustc 1.70.0) |
| Score | 100 |
| Code Size | 1358 Byte |
| Status | AC |
| Exec Time | 3 ms |
| Memory | 3024 KiB |
Judge Result
| Set Name | All | ||
|---|---|---|---|
| Score / Max Score | 100 / 100 | ||
| Status |
|
| Set Name | Test Cases |
|---|---|
| All | 0_00, 0_01, 0_02, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 0_00 | AC | 1 ms | 1872 KiB |
| 0_01 | AC | 1 ms | 1868 KiB |
| 0_02 | AC | 1 ms | 2100 KiB |
| 1_00 | AC | 1 ms | 1980 KiB |
| 1_01 | AC | 1 ms | 1952 KiB |
| 1_02 | AC | 3 ms | 2852 KiB |
| 1_03 | AC | 3 ms | 2908 KiB |
| 1_04 | AC | 3 ms | 2976 KiB |
| 1_05 | AC | 3 ms | 3024 KiB |
| 1_06 | AC | 3 ms | 2972 KiB |
| 1_07 | AC | 3 ms | 2952 KiB |