結果
問題 |
No.2943 Sigma String of String Score Problem
|
ユーザー |
![]() |
提出日時 | 2024-10-18 23:44:14 |
言語 | C (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 160 ms / 3,000 ms |
コード長 | 529 bytes |
コンパイル時間 | 2,305 ms |
コンパイル使用メモリ | 29,952 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-10-18 23:44:35 |
合計ジャッジ時間 | 2,932 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 28 |
ソースコード
#include<stdio.h> char s[100005], t[1003]; long long int dp[1003]; int main() { scanf("%s%s", s, t); long long int n, m; for (n = 0; s[n] != '\0'; n++); for (m = 0; t[m] != '\0'; m++); const long long int p = 998244353; long long int i, j; for (i = 0; i <= m; i++) dp[i] = 0; dp[0] = 1; for (i = 0; i < n; i++) for (j = m - 1; j >= 0; j--) if (s[i] == t[j]) dp[j + 1] = (dp[j + 1] + dp[j]) % p; long long int ans = dp[m]; for (i = 0; i < n - m; i++) ans = ans * 2 % p; printf("%lld\n", ans); return 0; }