Submission #4018282


Source Code Expand

#include<bits/stdc++.h>
#define MOD (1000000007)
#define LL long long
using namespace std;

LL n,k,ans;
vector<LL>v,f;

LL Qpow(LL a,LL b)
{
	LL ans=1;
	while (b)
	{
		if (b&1) ans=ans*a%MOD;
		a=a*a%MOD; b>>=1;
	}
	return ans;
}

int main()
{
	cin>>n>>k;
	for (int i=1; i<=sqrt(n); ++i)
		if (n%i==0)
		{
			v.push_back(i);
			if (n/i!=i) v.push_back(n/i);
		}
	sort(v.begin(),v.end());
	f.resize(v.size());
	for (int i=0,sz=v.size(); i<sz; ++i)
	{
		f[i]=Qpow(k,(v[i]+1)/2);
		for (int j=0; j<i; ++j)
			if (v[i]%v[j]==0) (f[i]-=f[j])%=MOD;
		if (v[i]%2) (ans+=f[i]*v[i]%MOD)%=MOD;
		else (ans+=f[i]*v[i]/2%MOD)%=MOD;
	}
	cout<<(ans+MOD)%MOD<<endl;
}

Submission Info

Submission Time
Task F - Rotated Palindromes
User Refun
Language C++14 (GCC 5.4.1)
Score 1000
Code Size 691 Byte
Status AC
Exec Time 13 ms
Memory 256 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 1000 / 1000
Status
AC × 4
AC × 36
Set Name Test Cases
Sample 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt
All 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt, 1_16.txt, 1_17.txt, 1_18.txt, 1_19.txt, 1_20.txt, 1_21.txt, 1_22.txt, 1_23.txt, 1_24.txt, 1_25.txt, 1_26.txt, 1_27.txt, 1_28.txt, 1_29.txt, 1_30.txt, 1_31.txt
Case Name Status Exec Time Memory
0_00.txt AC 1 ms 256 KB
0_01.txt AC 1 ms 256 KB
0_02.txt AC 1 ms 256 KB
0_03.txt AC 2 ms 256 KB
1_00.txt AC 1 ms 256 KB
1_01.txt AC 1 ms 256 KB
1_02.txt AC 2 ms 256 KB
1_03.txt AC 2 ms 256 KB
1_04.txt AC 1 ms 256 KB
1_05.txt AC 1 ms 256 KB
1_06.txt AC 1 ms 256 KB
1_07.txt AC 1 ms 256 KB
1_08.txt AC 2 ms 256 KB
1_09.txt AC 2 ms 256 KB
1_10.txt AC 2 ms 256 KB
1_11.txt AC 2 ms 256 KB
1_12.txt AC 2 ms 256 KB
1_13.txt AC 2 ms 256 KB
1_14.txt AC 2 ms 256 KB
1_15.txt AC 2 ms 256 KB
1_16.txt AC 13 ms 256 KB
1_17.txt AC 13 ms 256 KB
1_18.txt AC 13 ms 256 KB
1_19.txt AC 13 ms 256 KB
1_20.txt AC 12 ms 256 KB
1_21.txt AC 12 ms 256 KB
1_22.txt AC 12 ms 256 KB
1_23.txt AC 12 ms 256 KB
1_24.txt AC 1 ms 256 KB
1_25.txt AC 2 ms 256 KB
1_26.txt AC 1 ms 256 KB
1_27.txt AC 2 ms 256 KB
1_28.txt AC 1 ms 256 KB
1_29.txt AC 2 ms 256 KB
1_30.txt AC 1 ms 256 KB
1_31.txt AC 2 ms 256 KB