Module c
Expand description
ยงABC 406 C - ~
refs: https://atcoder.jp/contests/abc406/tasks/abc406_c
use proconio::input;
fn main() {
input! {
n: usize,
p: [usize; n],
}
let mut increasing = Vec::<u64>::new();
let mut current = 0;
let mut prev = p[0];
for &pi in p.iter().take(n).skip(1) {
if pi > prev {
current += 1;
} else {
if current > 0 {
increasing.push(current);
}
current = 0;
}
prev = pi;
}
if current > 0 {
increasing.push(current);
}
if increasing.len() < 2 {
println!("0");
return;
}
let mut ans = 0;
for i in 0..(increasing.len() - 1) {
ans += increasing[i] * increasing[i + 1];
}
println!("{ans}");
}