Submission #1492247
Source Code Expand
fn get_line() -> String { let mut s = String::new(); std::io::stdin().read_line(&mut s).ok(); s.trim().to_string() } fn reads<T>() -> Vec<T> where T: std::str::FromStr, <T as std::str::FromStr>::Err: std::fmt::Debug { get_line().split(' ').map(|x| x.parse().unwrap()).collect() } fn readln<T>() -> T where T: std::str::FromStr, <T as std::str::FromStr>::Err: std::fmt::Debug { get_line().parse().unwrap() } #[derive(Clone, Copy, Eq, PartialEq, Debug)] enum E { Answer(u64), Less(u64), } use std::cmp; fn main() { let n = readln(); let xs = reads(); let ys = reads(); let mut zs = vec![E::Less(1000000000); n]; let mut prev = 0; for (i, x) in xs.into_iter().enumerate() { if x > prev { prev = x; zs[i] = E::Answer(x); } else { zs[i] = E::Less(x); } } let mut prev = 0; let mut flag = true; for i in 0..n { let i = n - i - 1; let y = ys[i]; if !flag { break; } if y > prev { prev = y; match zs[i] { E::Answer(n) if n == y => {}, E::Less(n) if n >= y => {zs[i] = E::Answer(y);}, _ => {flag = false;}, } } else { match zs[i] { E::Answer(n) if y >= n => {}, E::Less(n) => {zs[i] = E::Less(cmp::min(n, y));}, _ => {flag = false;}, } } } let mut res = 0; if flag { res = 1; for z in zs { if let E::Less(n) = z { res *= n; res %= 1000000007; } } } println!("{}", res); }
Submission Info
Submission Time | |
---|---|
Task | C - Two Alpinists |
User | lodnix |
Language | Rust (1.15.1) |
Score | 400 |
Code Size | 1872 Byte |
Status | AC |
Exec Time | 16 ms |
Memory | 11512 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 400 / 400 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 0_000.txt, 0_001.txt, 0_002.txt, 0_003.txt |
All | 0_000.txt, 0_001.txt, 0_002.txt, 0_003.txt, 1_004.txt, 1_005.txt, 1_006.txt, 1_007.txt, 1_008.txt, 1_009.txt, 1_010.txt, 1_011.txt, 1_012.txt, 1_013.txt, 1_014.txt, 1_015.txt, 1_016.txt, 1_017.txt, 1_018.txt, 1_019.txt, 1_020.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
0_000.txt | AC | 2 ms | 4352 KB |
0_001.txt | AC | 2 ms | 4352 KB |
0_002.txt | AC | 2 ms | 4352 KB |
0_003.txt | AC | 2 ms | 4352 KB |
1_004.txt | AC | 2 ms | 4352 KB |
1_005.txt | AC | 2 ms | 4352 KB |
1_006.txt | AC | 2 ms | 4352 KB |
1_007.txt | AC | 2 ms | 4352 KB |
1_008.txt | AC | 16 ms | 9972 KB |
1_009.txt | AC | 13 ms | 9744 KB |
1_010.txt | AC | 13 ms | 9832 KB |
1_011.txt | AC | 15 ms | 9464 KB |
1_012.txt | AC | 14 ms | 11512 KB |
1_013.txt | AC | 14 ms | 9780 KB |
1_014.txt | AC | 14 ms | 9908 KB |
1_015.txt | AC | 15 ms | 11512 KB |
1_016.txt | AC | 14 ms | 11512 KB |
1_017.txt | AC | 13 ms | 10612 KB |
1_018.txt | AC | 13 ms | 9464 KB |
1_019.txt | AC | 12 ms | 8444 KB |
1_020.txt | AC | 10 ms | 8444 KB |