围成一个圈,那么知道对面是谁加上半圈的人数就知道背后的是谁了。如果加完大于最大编号要减一下,或者取余。
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int MAX_N = 100 + 10;
const int MAX_M = 20 + 2;
char names[MAX_N][MAX_M];
int main()
{
int T;
cin >> T;
while(T--)
{
int n, dist;
char name[MAX_M];
cin >> n >> name;
for(int i = 0; i < n; i++)
{
cin >> names[i];
if(strcmp(names[i], name) == 0)
dist = i;
}
int res = dist + (n / 2);
if(res >= n)
res -= n;
cout << names[res] << endl;
}
return 0;
}