414B. Mashmokh and ACM - Codeforces Solution C++

  Problem Link : 414B. Mashmokh and ACM 


✅ C++ Solution :

 
#include<bits/stdc++.h>
using namespace std;

#define ll long long int
#define m 1000000007

int main()
{
	int n,k;
	cin>>n>>k;
	vector<int> arr[n+1];

	for(int i=1;i<=n;i++)
	{
		for(int j=1;j*j<=i;j++)
		{
			if(i%j!=0)
				continue;
			arr[i].push_back(j);
			if(j!=i/j)
				arr[i].push_back(i/j);
		}
	}

	ll dp[k+1][n+1];
	memset(dp,0,sizeof(dp));

	for(int i=1;i<=n;i++)
		dp[1][i]=1;

	ll ans=0;
	for(int i=2;i<=k;i++)
	{
		for(int j=1;j<=n;j++)
		{
			for(int k=0;k<arr[j].size();k++)
				dp[i][j]=(dp[i][j]+dp[i-1][arr[j][k]])%m;
		}
	}

	for(int i=1;i<=n;i++)
		ans=(ans+dp[k][i])%m;
	cout<<ans;


}

 

Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook. 

😇Happy Learning!!