結果
問題 | No.741 AscNumber(Easy) |
ユーザー | tutuz |
提出日時 | 2018-10-06 14:46:28 |
言語 | Java21 (openjdk 21) |
結果 |
AC
|
実行時間 | 167 ms / 2,000 ms |
コード長 | 4,148 bytes |
コンパイル時間 | 2,335 ms |
コンパイル使用メモリ | 77,844 KB |
実行使用メモリ | 61,904 KB |
最終ジャッジ日時 | 2024-10-12 13:48:24 |
合計ジャッジ時間 | 12,767 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 159 ms
61,488 KB |
testcase_01 | AC | 162 ms
61,592 KB |
testcase_02 | AC | 160 ms
61,708 KB |
testcase_03 | AC | 160 ms
61,540 KB |
testcase_04 | AC | 159 ms
61,740 KB |
testcase_05 | AC | 161 ms
61,776 KB |
testcase_06 | AC | 161 ms
61,540 KB |
testcase_07 | AC | 164 ms
61,708 KB |
testcase_08 | AC | 162 ms
61,692 KB |
testcase_09 | AC | 161 ms
61,476 KB |
testcase_10 | AC | 158 ms
61,680 KB |
testcase_11 | AC | 160 ms
61,704 KB |
testcase_12 | AC | 161 ms
61,672 KB |
testcase_13 | AC | 166 ms
61,676 KB |
testcase_14 | AC | 161 ms
61,568 KB |
testcase_15 | AC | 159 ms
61,584 KB |
testcase_16 | AC | 162 ms
61,596 KB |
testcase_17 | AC | 156 ms
61,716 KB |
testcase_18 | AC | 161 ms
61,772 KB |
testcase_19 | AC | 158 ms
61,768 KB |
testcase_20 | AC | 158 ms
61,676 KB |
testcase_21 | AC | 160 ms
61,592 KB |
testcase_22 | AC | 159 ms
61,776 KB |
testcase_23 | AC | 166 ms
61,680 KB |
testcase_24 | AC | 162 ms
61,792 KB |
testcase_25 | AC | 162 ms
61,656 KB |
testcase_26 | AC | 159 ms
61,680 KB |
testcase_27 | AC | 160 ms
61,860 KB |
testcase_28 | AC | 164 ms
61,588 KB |
testcase_29 | AC | 160 ms
61,328 KB |
testcase_30 | AC | 163 ms
61,716 KB |
testcase_31 | AC | 162 ms
61,776 KB |
testcase_32 | AC | 159 ms
61,904 KB |
testcase_33 | AC | 158 ms
61,628 KB |
testcase_34 | AC | 162 ms
61,744 KB |
testcase_35 | AC | 163 ms
61,764 KB |
testcase_36 | AC | 158 ms
61,700 KB |
testcase_37 | AC | 160 ms
61,796 KB |
testcase_38 | AC | 160 ms
61,820 KB |
testcase_39 | AC | 159 ms
61,708 KB |
testcase_40 | AC | 164 ms
61,716 KB |
testcase_41 | AC | 163 ms
61,700 KB |
testcase_42 | AC | 162 ms
61,772 KB |
testcase_43 | AC | 158 ms
61,888 KB |
testcase_44 | AC | 160 ms
61,748 KB |
testcase_45 | AC | 167 ms
61,624 KB |
testcase_46 | AC | 161 ms
61,676 KB |
testcase_47 | AC | 166 ms
61,668 KB |
testcase_48 | AC | 164 ms
61,572 KB |
testcase_49 | AC | 164 ms
61,604 KB |
testcase_50 | AC | 158 ms
61,704 KB |
testcase_51 | AC | 158 ms
61,708 KB |
testcase_52 | AC | 162 ms
61,580 KB |
testcase_53 | AC | 163 ms
61,576 KB |
testcase_54 | AC | 164 ms
61,756 KB |
ソースコード
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintWriter;import java.util.InputMismatchException;import java.util.StringTokenizer;public class Main {public static void main(String[] args) throws IOException {InputStream inputStream = System.in;OutputStream outputStream = System.out;InputReader in = new InputReader(inputStream);PrintWriter out = new PrintWriter(outputStream);TaskX solver = new TaskX();solver.solve(1, in, out);out.close();}static int INF = 1 << 30;static long LINF = 1L << 55;static int MOD = 1000000007;static int[] mh4 = { 0, -1, 1, 0 };static int[] mw4 = { -1, 0, 0, 1 };static int[] mh8 = { -1, -1, -1, 0, 0, 1, 1, 1 };static int[] mw8 = { -1, 0, 1, -1, 1, -1, 0, 1 };static class TaskX {public void solve(int testNumber, InputReader in, PrintWriter out) {int n = in.nextInt();out.println(comb(n+9, n));}}/*** 二項係数* 前提 n < modP* nCr = n!/(r!*(n-r)!)である。この時分子分母にMODが来る場合は以下のように使用する* */public static long comb(int n, int r) {if (r < 0 || r > n)return 0L;return fact[n] % MOD * factInv[r] % MOD * factInv[n - r] % MOD;}/*** 階乗数の逆元** */public static int MAXN = 1000010;static long[] fact = factorialArray(MAXN, MOD);static long[] factInv = factorialInverseArray(MAXN, MOD,inverseArray(MAXN, MOD));// 階乗の mod P テーブルpublic static long[] factorialArray(int maxN, long mod) {long[] fact = new long[maxN + 1];fact[0] = 1 % mod;for (int i = 1; i <= maxN; i++) {fact[i] = fact[i - 1] * i % mod;}return fact;}// 数 i に対する mod P での逆元テーブルpublic static long[] inverseArray(int maxN, long modP) {long[] inv = new long[maxN + 1];inv[1] = 1;for (int i = 2; i <= maxN; i++) {inv[i] = modP - (modP / i) * inv[(int) (modP % i)] % modP;}return inv;}// 階乗の逆元テーブルpublic static long[] factorialInverseArray(int maxN, long modP,long[] inverseArray) {long[] factInv = new long[maxN + 1];factInv[0] = 1;for (int i = 1; i <= maxN; i++) {factInv[i] = factInv[i - 1] * inverseArray[i] % modP;}return factInv;}static class InputReader {BufferedReader in;StringTokenizer tok;public String nextString() {while (!tok.hasMoreTokens()) {try {tok = new StringTokenizer(in.readLine(), " ");} catch (IOException e) {throw new InputMismatchException();}}return tok.nextToken();}public int nextInt() {return Integer.parseInt(nextString());}public long nextLong() {return Long.parseLong(nextString());}public double nextDouble() {return Double.parseDouble(nextString());}public int[] nextIntArray(int n) {int[] res = new int[n];for (int i = 0; i < n; i++) {res[i] = nextInt();}return res;}public int[] nextIntArrayDec(int n) {int[] res = new int[n];for (int i = 0; i < n; i++) {res[i] = nextInt() - 1;}return res;}public int[] nextIntArray1Index(int n) {int[] res = new int[n + 1];for (int i = 0; i < n; i++) {res[i + 1] = nextInt();}return res;}public long[] nextLongArray(int n) {long[] res = new long[n];for (int i = 0; i < n; i++) {res[i] = nextLong();}return res;}public long[] nextLongArrayDec(int n) {long[] res = new long[n];for (int i = 0; i < n; i++) {res[i] = nextLong() - 1;}return res;}public long[] nextLongArray1Index(int n) {long[] res = new long[n + 1];for (int i = 0; i < n; i++) {res[i + 1] = nextLong();}return res;}public double[] nextDoubleArray(int n) {double[] res = new double[n];for (int i = 0; i < n; i++) {res[i] = nextDouble();}return res;}public InputReader(InputStream inputStream) {in = new BufferedReader(new InputStreamReader(inputStream));tok = new StringTokenizer("");}}}