Submission #24463


Source Code Expand

#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;
typedef long long ll;
ll mod=1000000007;
ll po(ll a,ll b)
{
	ll ret=1;
	vector<int>vec;
	for(;;)
	{
		vec.push_back(b%2);
		b/=2;
		if(b==0)
		{
			break;
		}
	}
	reverse(vec.begin(),vec.end());
	for(int i=0;i<vec.size();i++)
	{
		ret*=ret;
		ret%=mod;
		if(vec[i]==1)
		{
			ret*=a;
			ret%=mod;
		}
	}
	return ret;
}
ll inv(ll a)
{
	return po(a,mod-2);
}
ll kai[200000];
void kaifind()
{
	ll now=1;
	kai[0]=1;
	for(int i=1;i<200000;i++)
	{
		now*=i;
		now%=mod;
		kai[i]=now;
	}
}
ll com(ll a,ll b)
{
	ll ret=kai[a];
	ret*=inv(kai[b]);
	ret%=mod;
	ret*=inv(kai[a-b]);
	ret%=mod;
	return ret;
}
vector<ll>bun(ll a)
{
	vector<ll>ret;
	for(int i=2;;i++)
	{
		if(i*i>a)
		{
			break;
		}
		int hog=0;
		for(;;)
		{
			if(a%i==0)
			{
				hog++;
				a/=i;
			}
			else
			{
				if(hog!=0)
				{
					ret.push_back(hog);
				}
				break;
			}
		}
	}
	if(a!=1)
	{
		ret.push_back(1);
	}
	return ret;
}
int main()
{
	kaifind();
	ll a,b;
	scanf("%lld%lld",&a,&b);
	ll hoge=a;
	a=max(a,-a);
	vector<ll>vec=bun(a);
	ll ret=1;
	for(int i=0;i<vec.size();i++)
	{
		//printf("%lld\n",vec[i]);
		ret*=com(b-1+vec[i],vec[i]);
		ret%=mod;
	}
	ll sf=po(2,b-1);
	//printf("%lld %lld\n",ret,sf);
	printf("%lld\n",(ret*sf)%mod);
}

Submission Info

Submission Time
Task D - 表現の自由 ( Freedom of expression )
User DEGwer
Language C++ (G++ 4.6.4)
Score 100
Code Size 1394 Byte
Status AC
Exec Time 28 ms
Memory 2324 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:95:25: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 40
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 28 ms 2296 KB
00_max2.txt AC 28 ms 2324 KB
00_max3.txt AC 26 ms 2320 KB
00_min.txt AC 26 ms 2292 KB
00_sample_01.txt AC 28 ms 2292 KB
00_sample_02.txt AC 28 ms 2300 KB
00_sample_03.txt AC 28 ms 2308 KB
00_sample_04.txt AC 28 ms 2300 KB
01_rnd_00.txt AC 28 ms 2300 KB
01_rnd_01.txt AC 28 ms 2304 KB
01_rnd_02.txt AC 27 ms 2304 KB
01_rnd_03.txt AC 27 ms 2296 KB
01_rnd_04.txt AC 27 ms 2296 KB
01_rnd_05.txt AC 27 ms 2300 KB
01_rnd_06.txt AC 28 ms 2300 KB
01_rnd_07.txt AC 27 ms 2308 KB
01_rnd_08.txt AC 28 ms 2300 KB
01_rnd_09.txt AC 27 ms 2300 KB
01_rnd_10.txt AC 28 ms 2300 KB
01_rnd_11.txt AC 27 ms 2296 KB
01_rnd_12.txt AC 28 ms 2304 KB
01_rnd_13.txt AC 28 ms 2300 KB
01_rnd_14.txt AC 27 ms 2292 KB
01_rnd_15.txt AC 28 ms 2304 KB
01_rnd_16.txt AC 27 ms 2300 KB
01_rnd_17.txt AC 28 ms 2296 KB
01_rnd_18.txt AC 28 ms 2324 KB
01_rnd_19.txt AC 28 ms 2304 KB
01_rnd_20.txt AC 28 ms 2304 KB
01_rnd_21.txt AC 28 ms 2312 KB
01_rnd_22.txt AC 27 ms 2300 KB
01_rnd_23.txt AC 28 ms 2292 KB
01_rnd_24.txt AC 28 ms 2304 KB
01_rnd_25.txt AC 27 ms 2320 KB
01_rnd_26.txt AC 28 ms 2304 KB
01_rnd_27.txt AC 28 ms 2300 KB
01_rnd_28.txt AC 28 ms 2304 KB
01_rnd_29.txt AC 27 ms 2268 KB
04_primes_01.txt AC 28 ms 2300 KB
04_primes_02.txt AC 28 ms 2312 KB