Submission #43301555
Source Code Expand
use proconio::{input, marker::Chars};
fn main() {
input! {
n: usize,
s: Chars,
}
let modp = 1_000_000_007_usize;
let mut dp = vec![1_usize; n];
for (i, s_i) in s.iter().copied().enumerate() {
let mut next = vec![0_usize; n];
let c = std::iter::once(0)
.chain(dp.iter().scan(0, |acc, &i| {
*acc += i;
Some(*acc)
}))
.collect::<Vec<usize>>();
for j in 0..n - i {
if s_i == '<' {
next[j] += c[n - i] - c[j + 1];
next[j] %= modp;
} else {
next[j] += c[j + 1] - c[0];
next[j] %= modp;
}
}
dp = next;
}
let ans = dp[0];
println!("{}", ans);
}
Submission Info
| Submission Time | |
|---|---|
| Task | T - Permutation |
| User | bouzuya |
| Language | Rust (1.42.0) |
| Score | 100 |
| Code Size | 796 Byte |
| Status | AC |
| Exec Time | 38 ms |
| Memory | 2236 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, 1_08, 1_09, 1_10, 1_11, 1_12, 1_13 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 0_00 | AC | 1 ms | 2088 KiB |
| 0_01 | AC | 1 ms | 2020 KiB |
| 0_02 | AC | 2 ms | 1988 KiB |
| 1_00 | AC | 1 ms | 2072 KiB |
| 1_01 | AC | 1 ms | 2012 KiB |
| 1_02 | AC | 36 ms | 2128 KiB |
| 1_03 | AC | 35 ms | 2144 KiB |
| 1_04 | AC | 36 ms | 2132 KiB |
| 1_05 | AC | 38 ms | 2124 KiB |
| 1_06 | AC | 34 ms | 2060 KiB |
| 1_07 | AC | 35 ms | 2200 KiB |
| 1_08 | AC | 29 ms | 2112 KiB |
| 1_09 | AC | 34 ms | 2100 KiB |
| 1_10 | AC | 31 ms | 2236 KiB |
| 1_11 | AC | 38 ms | 2084 KiB |
| 1_12 | AC | 34 ms | 2108 KiB |
| 1_13 | AC | 35 ms | 2212 KiB |