question link
method 1 by map.
#include <bits/stdc++.h>
using namespace std;
int main()
{
long int n, q;
cin >> n >> q;
unordered_map<int, long int> ms;
vector<long int> v;
for (int i = 0; i < n; i++)
{
long int a;
cin >> a;
v.push_back(a);
ms.insert({i + 1, a});
}
for (long int j = 0; j < q; j++)
{
int value;
long int d, k, l,r;
cin >> d >> k >> l >> r;
for (auto it : ms)
{
if (d == it.first)
value = it.second;
}
int count=0;
for (int i = l - 1; i <= r - 1; i++)
{
if (v[i] == value)
{
count++;
if (count == k)
cout << i + 1 << endl;
}
} if(count!=k)
cout<<"-1"<<endl;
}
}
method 2 by function
#include <bits/stdc++.h>
using namespace std;
int hashfunc(int d,vector< long int>v,int n)
{ long int count1=0,value;
for(int i=0;i<n;i++)
{ long int count=0;
for(int j=i;j>0;j--)
{
if(v[i]!=v[j-1])
count++;
if(v[i]==v[j-1])
break;
}
if(count==i)
{
count1++;
if(count1==d)
value=v[i];
}
} return value;
}
int main()
{
long int n, q;
cin >> n >> q;
vector<long int> v;
for (int i = 0; i < n; i++)
{
long int a;
cin >> a;
v.push_back(a);
}
for (long int j = 0; j < q; j++)
{
long int d, k, l,r;
cin >> d >> k >> l >> r;
long int value=hashfunc(d,v,n);
int count=0;
for (int i = l - 1; i <= r - 1; i++)
{
if (v[i] == value)
{
count++;
if (count == k)
cout << i + 1 << endl;
}
} if(count!=k)
cout<<"-1"<<endl;
}
}
pls tell me