Submission #24494
Source Code Expand
module main; import std.stdio; import std.array; import std.string; import std.conv; //import std.math; import std.algorithm; import std.range; import std.typetuple; import std.functional; const mod = 10_0000_0007; void main() { solve_D(); } void solve_D() { auto buf = readln().strip().split(); int n = buf[0].to!int(); int m = buf[1].to!int(); if (n < 0) { n = -n; } int[int] power; foreach (prime; known_primes()) { if (n % prime == 0) { power[prime] = 0; while (n % prime == 0) { power[prime] += 1; n /= prime; } } } // (いま) n = 1 なら (もとの) n の素因数は小さいものばかり。 // そうでない場合は大きい素因数だけの積になっているが、それは単一の素数にほかならない。 if (1 < n) { power[n] += 1; } assert(n); // check // 符号の処理: 最後以外は自由に選べる。 ulong ret = 1; foreach (i; 1..m) { ret *= 2; ret %= mod; } // ここがメイン。 foreach (p, e; power) { ret *= partition(e, m); ret %= mod; } writefln("%d", ret); } int[] known_primes() { const M = 32768; bool[M] not_prime; not_prime[0] = true; not_prime[1] = true; foreach (i; 2..200) { if (not_prime[i]) { continue; } foreach (j; iota(i+i, M, i)) { not_prime[j] = true; } } int[] ret; foreach (i; 2..M) { if (!not_prime[i]) { ret ~= i; // debug { writef("%d, ", i);} } } return ret; } int partition(int e, int n) out (result) { assert(0 <= result && result < mod); } body { ulong[][] dp;//[n+1][e+1] dp; dp.length = n+1; foreach (i; 0..(n+1)) { dp[i].length = e+1; } dp[0][0] = 1; foreach(i; 0..n) { foreach (j; 0..(e+1)) { foreach (jj; 0..(j+1)) { dp[i+1][j] += dp[i][jj]; if (mod <= dp[i+1][j]) { dp[i+1][j] -= mod; } } } } return cast(int)(dp[n][e]); }
Submission Info
Submission Time | |
---|---|
Task | D - 表現の自由 ( Freedom of expression ) |
User | majiang |
Language | D (DMD 2.060) |
Score | 100 |
Code Size | 2466 Byte |
Status | AC |
Exec Time | 1299 ms |
Memory | 28412 KB |
Judge Result
Set Name | All | ||
---|---|---|---|
Score / Max Score | 100 / 100 | ||
Status |
|
Set Name | Test Cases |
---|---|
All | 00_max.txt, 00_max2.txt, 00_max3.txt, 00_min.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 00_sample_04.txt, 01_rnd_00.txt, 01_rnd_01.txt, 01_rnd_02.txt, 01_rnd_03.txt, 01_rnd_04.txt, 01_rnd_05.txt, 01_rnd_06.txt, 01_rnd_07.txt, 01_rnd_08.txt, 01_rnd_09.txt, 01_rnd_10.txt, 01_rnd_11.txt, 01_rnd_12.txt, 01_rnd_13.txt, 01_rnd_14.txt, 01_rnd_15.txt, 01_rnd_16.txt, 01_rnd_17.txt, 01_rnd_18.txt, 01_rnd_19.txt, 01_rnd_20.txt, 01_rnd_21.txt, 01_rnd_22.txt, 01_rnd_23.txt, 01_rnd_24.txt, 01_rnd_25.txt, 01_rnd_26.txt, 01_rnd_27.txt, 01_rnd_28.txt, 01_rnd_29.txt, 04_primes_01.txt, 04_primes_02.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00_max.txt | AC | 295 ms | 9852 KB |
00_max2.txt | AC | 390 ms | 16128 KB |
00_max3.txt | AC | 1299 ms | 28412 KB |
00_min.txt | AC | 24 ms | 896 KB |
00_sample_01.txt | AC | 23 ms | 916 KB |
00_sample_02.txt | AC | 23 ms | 908 KB |
00_sample_03.txt | AC | 23 ms | 908 KB |
00_sample_04.txt | AC | 23 ms | 912 KB |
01_rnd_00.txt | AC | 65 ms | 3824 KB |
01_rnd_01.txt | AC | 30 ms | 1916 KB |
01_rnd_02.txt | AC | 27 ms | 1268 KB |
01_rnd_03.txt | AC | 53 ms | 3704 KB |
01_rnd_04.txt | AC | 58 ms | 3428 KB |
01_rnd_05.txt | AC | 71 ms | 3956 KB |
01_rnd_06.txt | AC | 33 ms | 2420 KB |
01_rnd_07.txt | AC | 37 ms | 2560 KB |
01_rnd_08.txt | AC | 172 ms | 9852 KB |
01_rnd_09.txt | AC | 57 ms | 4476 KB |
01_rnd_10.txt | AC | 58 ms | 4724 KB |
01_rnd_11.txt | AC | 109 ms | 5112 KB |
01_rnd_12.txt | AC | 74 ms | 6016 KB |
01_rnd_13.txt | AC | 74 ms | 3964 KB |
01_rnd_14.txt | AC | 67 ms | 4340 KB |
01_rnd_15.txt | AC | 33 ms | 2444 KB |
01_rnd_16.txt | AC | 119 ms | 5108 KB |
01_rnd_17.txt | AC | 105 ms | 6656 KB |
01_rnd_18.txt | AC | 104 ms | 5492 KB |
01_rnd_19.txt | AC | 40 ms | 2432 KB |
01_rnd_20.txt | AC | 41 ms | 3328 KB |
01_rnd_21.txt | AC | 63 ms | 4224 KB |
01_rnd_22.txt | AC | 40 ms | 2544 KB |
01_rnd_23.txt | AC | 79 ms | 6776 KB |
01_rnd_24.txt | AC | 67 ms | 5488 KB |
01_rnd_25.txt | AC | 97 ms | 6264 KB |
01_rnd_26.txt | AC | 84 ms | 4608 KB |
01_rnd_27.txt | AC | 48 ms | 3844 KB |
01_rnd_28.txt | AC | 86 ms | 4340 KB |
01_rnd_29.txt | AC | 163 ms | 9484 KB |
04_primes_01.txt | AC | 56 ms | 5624 KB |
04_primes_02.txt | AC | 56 ms | 5628 KB |