# Count Triplets

### Problem Statement :

```You are given an array and you need to find number of tripets of indices (i, j, k) such that the elements at those indices are in geometric progression for a given common ratio r and i < j < k .

Function Description

Complete the countTriplets function in the editor below. It should return the number of triplets forming a geometric progression for a given

as an integer.

countTriplets has the following parameter(s):

arr: an array of integers
r: an integer, the common ratio

Input Format

The first line contains two space-separated integers n and r, the size of arr and the common ratio.
The next line contains n space-seperated integers arr[i] .

Constraints

1 <= n <= 10^5
1 <= r <= 10^9
1 <= arr[i] <= 10^9

Output Format

Return the count of triplets that form a geometric progression.```

### Solution :

```                        ```Solution in C++ :

In C++ :

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

map<long long,long long> l,r;

int main()
{
long long n, k,ans=0 ;
scanf("%lld%lld",&n,&k);
long long a[n];
for(int i=0;i<n;i++)
scanf("%lld",&a[i]);
for(int i=0;i<n;i++)
r[a[i]]++;
for(int i=0;i<n;i++)
{
r[a[i]]--;
if(a[i]%k==0)
{
ans+=l[a[i]/k]*r[a[i]*k];
}
l[a[i]]++;
}
printf("%lld\n",ans);
return 0;
}```
```

## Insert a node at a specific position in a linked list

Given the pointer to the head node of a linked list and an integer to insert at a certain position, create a new node with the given integer as its data attribute, insert this node at the desired position and return the head node. A position of 0 indicates head, a position of 1 indicates one node away from the head and so on. The head pointer given may be null meaning that the initial list is e

## Delete a Node

Delete the node at a given position in a linked list and return a reference to the head node. The head is at position 0. The list may be empty after you delete the node. In that case, return a null value. Example: list=0->1->2->3 position=2 After removing the node at position 2, list'= 0->1->-3. Function Description: Complete the deleteNode function in the editor below. deleteNo

## Print in Reverse

Given a pointer to the head of a singly-linked list, print each data value from the reversed list. If the given list is empty, do not print anything. Example head* refers to the linked list with data values 1->2->3->Null Print the following: 3 2 1 Function Description: Complete the reversePrint function in the editor below. reversePrint has the following parameters: Sing