Submission #71348437
Source Code Expand
Copy
#include <stdio.h>#define MOD_BY 1000000007int add(int a, int b) {return a + b - MOD_BY * (a + b >= MOD_BY);}int N;char s[4096];int memo[4096][4096];int main(void) {int pos, available;if (scanf("%d", &N) != 1) return 1;if (scanf("%4095s", s) != 1) return 1;memo[N][0] = 1;for (pos = N - 1; pos >= 0; pos--) {for (available = 0; available <= N - pos; available++) {int unavailable = N - pos - available; /* この要素の候補ではない要素の数を計算する */
#include <stdio.h>
#define MOD_BY 1000000007
int add(int a, int b) {
return a + b - MOD_BY * (a + b >= MOD_BY);
}
int N;
char s[4096];
int memo[4096][4096];
int main(void) {
int pos, available;
if (scanf("%d", &N) != 1) return 1;
if (scanf("%4095s", s) != 1) return 1;
memo[N][0] = 1;
for (pos = N - 1; pos >= 0; pos--) {
for (available = 0; available <= N - pos; available++) {
int unavailable = N - pos - available; /* この要素の候補ではない要素の数を計算する */
int ans = 0;
int i;
for (i = 0; i < available; i++) {
int next_available;
if ((pos == 0 ? '<' : s[pos - 1]) == s[pos]) {
/* 同じ方向 → 今の所より「上」のみを次に使える */
next_available = available - i - 1;
} else {
/* 違う方向 → 今の所より「下」のみを次に使える */
next_available = unavailable + i;
}
ans = add(ans, memo[pos + 1][next_available]);
}
memo[pos][available] = ans;
}
}
printf("%d\n", memo[0][N]);
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | T - Permutation |
| User | mikecat |
| Language | C (gcc 12.2.0) |
| Score | 0 |
| Code Size | 1068 Byte |
| Status | TLE |
| Exec Time | 2211 ms |
| Memory | 17896 KiB |
Judge Result
| Set Name | All | ||||
|---|---|---|---|---|---|
| Score / Max Score | 0 / 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 | 0 ms | 1720 KiB |
| 0_01 | AC | 0 ms | 1616 KiB |
| 0_02 | AC | 0 ms | 1648 KiB |
| 1_00 | AC | 0 ms | 1724 KiB |
| 1_01 | AC | 0 ms | 1716 KiB |
| 1_02 | TLE | 2208 ms | 17788 KiB |
| 1_03 | TLE | 2208 ms | 17484 KiB |
| 1_04 | TLE | 2208 ms | 17796 KiB |
| 1_05 | TLE | 2208 ms | 17820 KiB |
| 1_06 | TLE | 2208 ms | 17896 KiB |
| 1_07 | TLE | 2208 ms | 17824 KiB |
| 1_08 | TLE | 2208 ms | 17824 KiB |
| 1_09 | TLE | 2208 ms | 17792 KiB |
| 1_10 | TLE | 2211 ms | 17800 KiB |
| 1_11 | TLE | 2208 ms | 17772 KiB |
| 1_12 | TLE | 2208 ms | 17684 KiB |
| 1_13 | TLE | 2208 ms | 17740 KiB |