Submission #34865268
Source Code Expand
# 入力の受け取り
N = int(input())
S = input()
# 今回はatcoderをTとする
T = "atcoder"
# 余りのための変数
mod = 10**9+7
#0文字からN文字まで考えるので、"+1個"配列を定義
dp = [[0]*(len(T)+1) for _ in range(N+1)]
# j=0の時、全て1を代入
for i in range(N+1):
dp[i][0] = 1
# S[i]がT[j]に等しいかで場合分け
# dpのiとS[i]で示すiが1ズレている点に注意(jも同様)
# 答えをmodで割った余りを格納
for i in range(N):
for j in range(len(T)):
if S[i] == T[j]:
dp[i+1][j+1] = dp[i][j] + dp[i][j+1]
dp[i+1][j+1] %= mod
else:
dp[i+1][j+1] = dp[i][j+1]
dp[i+1][j+1] %= mod
# N文字まで使って、Tになる時の通り数を出力
print(dp[N][len(T)])
Submission Info
| Submission Time | |
|---|---|
| Task | 008 - AtCounter(★4) |
| User | inaty |
| Language | Python (3.8.2) |
| Score | 4 |
| Code Size | 801 Byte |
| Status | AC |
| Exec Time | 426 ms |
| Memory | 44576 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 4 / 4 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 10_random_small_00.txt, 10_random_small_01.txt, 11_random_medium_00.txt, 11_random_medium_01.txt, 12_random_large_00.txt, 12_random_large_01.txt, 13_random_max_00.txt, 13_random_max_01.txt, 13_random_max_02.txt, 20_insert_small_00.txt, 20_insert_small_01.txt, 21_insert_medium_00.txt, 21_insert_medium_01.txt, 22_insert_large_00.txt, 22_insert_large_01.txt, 23_insert_max_00.txt, 23_insert_max_01.txt, 23_insert_max_02.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 17 ms | 9076 KiB |
| 00_sample_01.txt | AC | 26 ms | 9072 KiB |
| 00_sample_02.txt | AC | 24 ms | 8968 KiB |
| 10_random_small_00.txt | AC | 19 ms | 8948 KiB |
| 10_random_small_01.txt | AC | 22 ms | 9160 KiB |
| 11_random_medium_00.txt | AC | 40 ms | 10184 KiB |
| 11_random_medium_01.txt | AC | 74 ms | 13460 KiB |
| 12_random_large_00.txt | AC | 206 ms | 26384 KiB |
| 12_random_large_01.txt | AC | 274 ms | 33036 KiB |
| 13_random_max_00.txt | AC | 415 ms | 44432 KiB |
| 13_random_max_01.txt | AC | 396 ms | 44132 KiB |
| 13_random_max_02.txt | AC | 426 ms | 44260 KiB |
| 20_insert_small_00.txt | AC | 26 ms | 9068 KiB |
| 20_insert_small_01.txt | AC | 23 ms | 9008 KiB |
| 21_insert_medium_00.txt | AC | 133 ms | 19196 KiB |
| 21_insert_medium_01.txt | AC | 223 ms | 26540 KiB |
| 22_insert_large_00.txt | AC | 283 ms | 32872 KiB |
| 22_insert_large_01.txt | AC | 335 ms | 38040 KiB |
| 23_insert_max_00.txt | AC | 401 ms | 44424 KiB |
| 23_insert_max_01.txt | AC | 408 ms | 44576 KiB |
| 23_insert_max_02.txt | AC | 409 ms | 44420 KiB |