結果
問題 | No.220 世界のなんとか2 |
ユーザー |
![]() |
提出日時 | 2020-01-14 17:30:50 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 130 ms / 1,000 ms |
コード長 | 878 bytes |
コンパイル時間 | 2,418 ms |
コンパイル使用メモリ | 76,976 KB |
実行使用メモリ | 41,524 KB |
最終ジャッジ日時 | 2024-12-25 23:56:38 |
合計ジャッジ時間 | 5,898 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 19 |
ソースコード
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); long[][] dp = new long[3][n + 1]; dp[0][0] = 1; for (int i = 1; i <= n; i++) { for (int j = 0; j < 10; j++) { if (j == 3) { continue; } dp[j % 3][i] += dp[0][i - 1]; dp[(j + 1) % 3][i] += dp[1][i - 1]; dp[(j + 2) % 3][i] += dp[2][i - 1]; } } if (n < 19) { long ans = (long)(Math.pow(10, n)) - dp[1][n] - dp[2][n] - 1; System.out.println(ans); } else { long base = (long)(Math.pow(10, n) / 2); long ans = base - dp[1][n] + base - dp[2][n] - 1; System.out.println(ans); } } }