https://www.acmicpc.net/problem/1966
#include <iostream>
#include <vector>
#include <deque>
#include <algorithm>
using namespace std;
int main(void)
{
int T, n, m;
cin >> T;
for (int t = 0; t < T; t++)
{
cin >> n >> m;
deque<pair<int, int>> dq;
vector<int> max_num;
for (int i = 0; i < n; i++)
{
int tmp;
cin >> tmp;
dq.push_back({ tmp, i });
max_num.push_back(tmp);
}
sort(max_num.begin(), max_num.end(), greater<>());
int cur_idx = 0;
while (!dq.empty())
{
if (dq.front().first == max_num[cur_idx])
{
if (dq.front().second == m)
{
cout << cur_idx + 1<<endl;
break;
}
dq.pop_front();
cur_idx++;
}
else
{
pair<int, int> tmp = dq.front();
dq.pop_front();
dq.push_back(tmp);
}
}
}
return 0;
}