567C. Geometric Progression - Codeforces Solution C++

  Problem Link : 567C. Geometric Progression 


✅ C++ Solution :

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

#define ll long long int

struct st{
	ll onel,twol,threel;
};

typedef struct st S;

map<int,S> mp;

int main()
{
	int n,k;
	cin>>n>>k;

	ll arr[n+1];
	arr[0]=-1;
	mp[0].onel=0;
	mp[1].twol=0;
	mp[2].threel=0;
	for(int i=1;i<=n;i++)
	{
		cin>>arr[i];
		mp[arr[i]].onel=0;
		mp[arr[i]].twol=0;
		mp[arr[i]].threel=0;
	}
	ll ans=0;
	for(int i=1;i<=n;i++)
	{
	   
		if(arr[i]%k==0)
		{
		    ans+=mp[arr[i]/k].twol;
			mp[arr[i]].twol+=mp[arr[i]/k].onel;
		}
	    mp[arr[i]].onel++;
		

	}

	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!!