Submission #23601
Source Code Expand
#include <cstdio> #include <iostream> #include <sstream> #include <iomanip> #include <algorithm> #include <cmath> #include <string> #include <vector> #include <list> #include <queue> #include <stack> #include <set> #include <map> #include <bitset> #include <numeric> #include <climits> #include <cfloat> using namespace std; void integerFactorization(int n, vector<int>& base, vector<int>& expo) { base.clear(); expo.clear(); int a = 2; while(a * a <= n){ int b = 0; while(n % a == 0){ ++ b; n /= a; } if(b > 0){ base.push_back(a); expo.push_back(b); } ++ a; } if(n > 1 || base.size() == 0){ base.push_back(n); expo.push_back(1); } } class Mod { static const int MOD = 1000000007; long long a; public: Mod(){ a = 0; } Mod(long long x){ a = (x % MOD + MOD) % MOD; } const Mod operator+(const Mod& x) const{ return Mod(a + x.a); } const Mod operator-(const Mod& x) const{ return Mod(a - x.a); } const Mod operator*(const Mod& x) const{ return Mod(a * x.a); } const Mod operator/(const Mod& x) const{ // フェルマーの小定理、x.aがMODと互いに素な場合のみ有効 int b = MOD - 2; long long c = x.a; long long ret = 1; while(b > 0){ if(b & 1){ ret *= c; ret %= MOD; } c *= c; c %= MOD; b >>= 1; } return Mod(a * ret); } long long getValue(){ return a; } }; Mod combination(int n, int r) // 組合せ { Mod ret(1); for(int i=0; i<r; i++){ ret = ret * n; n = n - 1; ret = ret / (i+1); } return ret; } Mod homogeneous(int n, int r) // 重複組合せ { return combination(n+r-1,r); } int main() { int n, m; cin >> n >> m; bool minus = false; if(n < 0){ minus = true; n *= -1; } vector<int> base, expo; integerFactorization(n, base, expo); Mod ret(1); for(unsigned i=0; i<expo.size(); ++i){ if(base[i] != 1) ret = ret * homogeneous(m, expo[i]); } Mod x(1); for(int i=0; i<m-1; ++i) x = x * 2; ret = ret * x; cout << ret.getValue() << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - 表現の自由 ( Freedom of expression ) |
User | mamekin |
Language | C++ (G++ 4.6.4) |
Score | 100 |
Code Size | 2539 Byte |
Status | AC |
Exec Time | 29 ms |
Memory | 828 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 | 24 ms | 760 KB |
00_max2.txt | AC | 23 ms | 788 KB |
00_max3.txt | AC | 24 ms | 740 KB |
00_min.txt | AC | 26 ms | 788 KB |
00_sample_01.txt | AC | 22 ms | 792 KB |
00_sample_02.txt | AC | 29 ms | 756 KB |
00_sample_03.txt | AC | 22 ms | 768 KB |
00_sample_04.txt | AC | 22 ms | 788 KB |
01_rnd_00.txt | AC | 22 ms | 736 KB |
01_rnd_01.txt | AC | 21 ms | 796 KB |
01_rnd_02.txt | AC | 21 ms | 820 KB |
01_rnd_03.txt | AC | 21 ms | 788 KB |
01_rnd_04.txt | AC | 21 ms | 784 KB |
01_rnd_05.txt | AC | 22 ms | 788 KB |
01_rnd_06.txt | AC | 21 ms | 784 KB |
01_rnd_07.txt | AC | 21 ms | 792 KB |
01_rnd_08.txt | AC | 23 ms | 792 KB |
01_rnd_09.txt | AC | 22 ms | 788 KB |
01_rnd_10.txt | AC | 22 ms | 828 KB |
01_rnd_11.txt | AC | 22 ms | 796 KB |
01_rnd_12.txt | AC | 22 ms | 796 KB |
01_rnd_13.txt | AC | 22 ms | 764 KB |
01_rnd_14.txt | AC | 22 ms | 764 KB |
01_rnd_15.txt | AC | 21 ms | 796 KB |
01_rnd_16.txt | AC | 22 ms | 796 KB |
01_rnd_17.txt | AC | 23 ms | 736 KB |
01_rnd_18.txt | AC | 22 ms | 792 KB |
01_rnd_19.txt | AC | 21 ms | 756 KB |
01_rnd_20.txt | AC | 22 ms | 812 KB |
01_rnd_21.txt | AC | 22 ms | 796 KB |
01_rnd_22.txt | AC | 22 ms | 788 KB |
01_rnd_23.txt | AC | 22 ms | 780 KB |
01_rnd_24.txt | AC | 22 ms | 784 KB |
01_rnd_25.txt | AC | 22 ms | 792 KB |
01_rnd_26.txt | AC | 22 ms | 788 KB |
01_rnd_27.txt | AC | 21 ms | 788 KB |
01_rnd_28.txt | AC | 21 ms | 812 KB |
01_rnd_29.txt | AC | 23 ms | 784 KB |
04_primes_01.txt | AC | 22 ms | 788 KB |
04_primes_02.txt | AC | 23 ms | 796 KB |