本地跑感觉完全没问题,而且第一个测试样例也过了,为什么还能idlness tle?
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define PII pair<int,int>
#define tul tuple<int,int,int>
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define rep_(i,a,b) for(int i=a;i>=b;--i)
#define all(x) x.begin(),x.end()
#define cy cout<<"YES"<<endl
#define cn cout<<"NO"<<endl
#define lc (rt<<1)
#define rc (rt<<1|1)
mt19937_64 rnd(time(0));
const int N=3e5+6,yyx=998244353;
int n,q;
int sx,sy;
inline void solve(){
cin>>n;
cin>>sx>>sy;
set<int> t1,t2;
rep(i,1,n){
int x,y;cin>>x>>y;
int p=abs(x-sx)+abs(y-sy);
if(p&1) t1.insert(i);
else t2.insert(i);
}
int l=t1.size();
if(l>(int)t2.size()){
cout<<"Second"<<endl;
while((t1.size()||t2.size())){
int x;cin>>x;
if(t1.count(x)){
t1.erase(x);
if(t2.size()){
cout<<*t2.begin()<<endl;t2.erase(t2.begin());
}
else if(t1.size()){
cout<<*t1.begin()<<endl;t1.erase(t1.begin());
}
}
else{
t2.erase(x);
if(t2.size()){
cout<<*t2.begin()<<endl;t2.erase(t2.begin());
}
else if(t1.size()){
cout<<*t1.begin()<<endl;t1.erase(t1.begin());
}
}
}
//if(!t1.size()&&!t2.size()) return;
}
else{
cout<<"First"<<endl;
while((t1.size()||t2.size())){
if(t1.size()){
cout<<*t1.begin()<<endl;t1.erase(t1.begin());
}
else{
cout<<*t2.begin()<<endl;t2.erase(t2.begin());
}
int x;cin>>x;
if(t1.count(x)) t1.erase(x);
else t2.erase(x);
}
//if(!t1.size()&&!t2.size()) return;
}
}
signed main(){
cin.tie(0)->sync_with_stdio(0);
//freopen("D://321//in.txt","r",stdin);
//freopen("D://321//out.txt","w",stdout);
int _=1;
cin>>_;
while(_--)
solve();
return 0;
}