Submission #8876164
Source Code Expand
// Practice AtCoder
// author: Leonardone @ NEETSDKASU
// PDF解説読後
fn main() {
let mut stdin = String::new();
std::io::Read::read_to_string(&mut std::io::stdin(), &mut stdin).unwrap();
let mut stdin = stdin.split_whitespace();
let mut get = || stdin.next().unwrap();
macro_rules! get {
($t:ty) => (get().parse::<$t>().unwrap());
() => (get!(i64));
}
let h = get!(usize);
let w = get!(usize);
let mut ab = vec![vec![0; w]; h];
for i in 0..2 {
for y in 0..h {
for x in 0..w {
ab[y][x] += get!();
ab[y][x] = -ab[y][x];
}
}
}
let size = 160 * (w + h) + 1;
let mut dp = vec![vec![vec![false; size]; w]; 2];
dp[0][0][ab[0][0].abs() as usize] = true;
for i in 1..w {
for j in 0..size {
if dp[0][i - 1][j] {
let k = j as i64 + ab[0][i];
dp[0][i][k.abs() as usize] = true;
let k = j as i64 - ab[0][i];
dp[0][i][k.abs() as usize] = true;
}
}
}
for y in 1..h {
let p = y & 1;
for i in 0..w {
for e in dp[p][i].iter_mut() {
*e = false;
}
}
for j in 0..size {
if dp[1 - p][0][j] {
let k = j as i64 + ab[y][0];
dp[p][0][k.abs() as usize] = true;
let k = j as i64 - ab[y][0];
dp[p][0][k.abs() as usize] = true;
}
}
for i in 1..w {
for j in 0..size {
if dp[p][i - 1][j] || dp[1 - p][i][j] {
let k = j as i64 + ab[y][i];
dp[p][i][k.abs() as usize] = true;
let k = j as i64 - ab[y][i];
dp[p][i][k.abs() as usize] = true;
}
}
}
}
let p = (h - 1) & 1;
for j in 0..size {
if dp[p][w - 1][j] {
println!("{}", j);
break;
}
}
}
Submission Info
| Submission Time | |
|---|---|
| Task | E - Balanced Path |
| User | neetsdkasu |
| Language | Rust (1.15.1) |
| Score | 500 |
| Code Size | 2127 Byte |
| Status | AC |
| Exec Time | 492 ms |
| Memory | 8444 KiB |
Compile Error
warning: unused variable: `i`, #[warn(unused_variables)] on by default
--> ./Main.rs:19:9
|
19 | for i in 0..2 {
| ^
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 500 / 500 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01, sample_02 |
| All | hand_01, hand_02, hand_03, hand_04, hand_05, hand_06, max_01, max_02, max_03, max_04, max_05, random_01, random_02, random_03, random_04, random_05, random_06, random_07, random_08, random_09, random_10, random_11, random_12, sample_01, sample_02 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| hand_01 | AC | 433 ms | 8444 KiB |
| hand_02 | AC | 433 ms | 8444 KiB |
| hand_03 | AC | 432 ms | 8444 KiB |
| hand_04 | AC | 433 ms | 8444 KiB |
| hand_05 | AC | 433 ms | 8444 KiB |
| hand_06 | AC | 432 ms | 8444 KiB |
| max_01 | AC | 473 ms | 8444 KiB |
| max_02 | AC | 428 ms | 8444 KiB |
| max_03 | AC | 420 ms | 8444 KiB |
| max_04 | AC | 433 ms | 8444 KiB |
| max_05 | AC | 435 ms | 8444 KiB |
| random_01 | AC | 169 ms | 6396 KiB |
| random_02 | AC | 164 ms | 6396 KiB |
| random_03 | AC | 211 ms | 6396 KiB |
| random_04 | AC | 181 ms | 6396 KiB |
| random_05 | AC | 85 ms | 4352 KiB |
| random_06 | AC | 492 ms | 8444 KiB |
| random_07 | AC | 485 ms | 8444 KiB |
| random_08 | AC | 485 ms | 8444 KiB |
| random_09 | AC | 485 ms | 8444 KiB |
| random_10 | AC | 484 ms | 8444 KiB |
| random_11 | AC | 452 ms | 8444 KiB |
| random_12 | AC | 455 ms | 8444 KiB |
| sample_01 | AC | 2 ms | 4352 KiB |
| sample_02 | AC | 2 ms | 4352 KiB |