Submission #1628973
Source Code Expand
const MOD: i64 = 1000000007;
fn main() {
let n: usize = read();
let mut vect: Vec<i64> = read_vec();
let mut veca: Vec<i64> = read_vec();
if vect[n-1] != veca[0] {
println!("0");
return;
}
vect.insert(0,0);
veca.push(0);
let udt = vect.windows(2).map(|w| if w[0]==w[1] {(w[1],false)} else {(w[1],true)});
let uda = veca.windows(2).map(|w| if w[0]==w[1] {(w[0],false)} else {(w[0],true)});
let udt2 = vect.windows(2).map(|w| if w[0]==w[1] {(w[1],false)} else {(w[1],true)});
let uda2 = veca.windows(2).map(|w| if w[0]==w[1] {(w[0],false)} else {(w[0],true)});
let invalid = |(hp1,hp2)| {
match (hp1, hp2) {
((h1, true), (h2, true)) => h1 != h2,
((h1, true), (h2, false)) => h1 > h2,
((h1, false), (h2, true)) => h1 < h2,
_ => false
}
};
if udt2.zip(uda2).any(invalid) {
println!("0");
return;
}
let ans =
udt.
zip(uda).
filter_map(|((h1,p1),(h2,p2))| if p1 || p2 {None} else {Some(std::cmp::min(h1,h2))}).
fold(1, |a,x| (a*x) % MOD);
println!("{}", ans);
}
fn read<T: std::str::FromStr>() -> T {
let mut buf = String::new();
std::io::stdin().read_line(&mut buf).ok();
buf.trim().parse::<T>().ok().unwrap()
}
fn read_vec<T: std::str::FromStr>() -> Vec<T> {
let mut buf = String::new();
std::io::stdin().read_line(&mut buf).ok();
buf.trim().split_whitespace().map(|t| t.parse::<T>().ok().unwrap()).collect()
}
Submission Info
Submission Time |
|
Task |
C - Two Alpinists |
User |
aimy |
Language |
Rust (1.15.1) |
Score |
400 |
Code Size |
1483 Byte |
Status |
AC |
Exec Time |
22 ms |
Memory |
10492 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 |
22 ms |
10032 KB |
1_009.txt |
AC |
17 ms |
10492 KB |
1_010.txt |
AC |
19 ms |
9464 KB |
1_011.txt |
AC |
20 ms |
9464 KB |
1_012.txt |
AC |
19 ms |
10492 KB |
1_013.txt |
AC |
20 ms |
9464 KB |
1_014.txt |
AC |
19 ms |
9464 KB |
1_015.txt |
AC |
20 ms |
10492 KB |
1_016.txt |
AC |
19 ms |
10492 KB |
1_017.txt |
AC |
18 ms |
10492 KB |
1_018.txt |
AC |
18 ms |
10492 KB |
1_019.txt |
AC |
15 ms |
8444 KB |
1_020.txt |
AC |
14 ms |
8444 KB |