Help me in solving TRIPLETMIN problem

My issue

Pls tell where is my code failing

My code

#include <bits/stdc++.h>
using namespace std;
#define ll long long int 
int main() {
	int t;
	cin >> t;
	while(t--)
	{
	    ll n, q;
	    cin >> n >> q;
	    vector<ll> a1(n), a2(q), a2Temp(q);
        for(ll i = 0; i < n; i++)
            cin >> a1[i];
        for(ll i = 0; i < q; i++)
        {
            int num; cin >> num;
            a2[i] = num; a2Temp[i] = num;
        }
        sort(a1.begin(), a1.end());
        sort(a2Temp.begin(), a2Temp.end());
        unordered_map<ll, ll> num;
        ll st = 0;
        ll rnk = ((n-2)*(n-1))/2;
        for(ll i = 0; i < q;)
        {
            ll rank = a2Temp[i];
            if(rnk >= rank)
            {
                num[rank] = a1[st];
                i++;
            }
            else
            {
                st++;
                ll l = n - st - 1;
                rnk += ((l)*(l-1))/2;
            }
        }
        for(auto rank : a2)
            cout << num[rank] << endl;
	}
	return 0;
}

Problem Link: TRIPLETMIN Problem - CodeChef