#include<iostream> using namespace std; const int N=5e5+10; int n; int a[N]; void solve() { scanf("%d",&n); int cnt1=0,cnt2=0,cnt3=0; for(int i=0;i<n;i++) { scanf("%d",&a[i]); a[i]--; } for(int i=0;i<n;i++)//把a[i]==i&&a[i]==n-i-1的情况省略了 { if(i==a[i]&&a[i]!=n-i-1) cnt1++; else if(a[i]!=i&&a[i]==n-i-1) cnt2++; else if(i!=a[i]&&a[i]!=n-i-1) cnt3++; } //最坏的情况是先手改变cnt2+cnt3个颜色,后手翻cnt1个颜色,如果这样做,cnt1>=cnt2+cnt3,那么先手必胜,其他的也是同理 if(cnt2+cnt3<=cnt1) puts("First"); else if(cnt1+cnt3<cnt2) puts("Second"); else puts("Tie"); } int main() { int T; cin>>T; while(T--) solve(); return 0; }
标签:int,Game,solve,cnt2,Permutation,cnt3 From: https://www.cnblogs.com/tolter/p/17258767.html