結果
| 問題 |
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();
}
}