結果
問題 |
No.294 SuperFizzBuzz
|
ユーザー |
|
提出日時 | 2015-10-24 18:40:23 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 166 ms / 5,000 ms |
コード長 | 1,251 bytes |
コンパイル時間 | 4,027 ms |
コンパイル使用メモリ | 79,556 KB |
実行使用メモリ | 55,088 KB |
最終ジャッジ日時 | 2024-09-13 07:12:22 |
合計ジャッジ時間 | 6,732 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 12 |
ソースコード
import java.util.Scanner; public class Main_yukicoder294_1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[][][] dp = new int[2][3][26]; dp[1][2][1] = 1; int[] d = {3, 5}; for (int i = 1; i < 25; i++) { for (int j = 0; j < 2; j++) { for (int k = 0; k < 3; k++) { for (int l = 0; l < 2; l++) { dp[l][(k + d[l]) % 3][i + 1] += dp[j][k][i]; } } } } int i = 0; int j = 0; int sum = 0; out: for (i = 1; i < 26; i++) { for (j = 0; j < 2; j++) { if (n - dp[j][sum][i] <= 0) { break out; } n -= dp[j][sum][i]; } } String ret = Integer.toString(d[j]); for (i--; i > 0; i--) { for (int k = 0; k < 2; k++) { if (n - dp[k][(sum + 6 - d[j]) % 3][i] <= 0) { sum -= d[j]; sum += 6; j = k; ret += d[k]; break; } else { n -= dp[k][(sum + 6 - d[j]) % 3][i]; } } } System.out.println(ret); sc.close(); } }