結果
問題 | No.220 世界のなんとか2 |
ユーザー | tenten |
提出日時 | 2020-10-26 10:08:08 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 135 ms / 1,000 ms |
コード長 | 908 bytes |
コンパイル時間 | 2,090 ms |
コンパイル使用メモリ | 74,028 KB |
実行使用メモリ | 41,788 KB |
最終ジャッジ日時 | 2024-07-21 21:18:08 |
合計ジャッジ時間 | 5,989 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
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[n + 1][3]; dp[0][0] = 1; for (int i = 1; i <= n; i++) { for (int j = 0; j < 10; j++) { if (j == 3) { continue; } for (int k = 0; k < 3; k++) { dp[i][(k * 10 + j) % 3] += dp[i - 1][k]; } } } long sum = 0; for (long x : dp[n]) { sum += x; } long total = pow(10, n) - sum; long ans = total + dp[n][0] - 1; System.out.println(ans); } static long pow(long x, long times) { long ret = 1; for (int i = 0; i < times; i++) { ret *= x; } return ret; } }