1
作者:
subtask
,
2024-02-14 10:11:01
,
所有人可见
,
阅读 41
#include <bits/stdc++.h>
using namespace std;
const int N = 110;
int a[N];
long long f[N][N], g[N][N];
int main() {
int T;
scanf("%d", &T);
while (T -- ) {
int n;
scanf("%d", &n);
for (int i = 1; i <= n; i ++ ) f[i][i] = g[i][i] = 1;
for (int i = 1; i <= n; i ++ ) scanf("%d", &a[i]);
for (int i = n; i > 0; i -- )
for (int j = i + 1; j <= n; j ++ ) {
f[i][j] = (a[j] < g[i + 1][j]) ? 1 : f[i][j - 1] - g[i + 1][j] + a[j] + 1;
g[i][j] = (a[i] < f[i][j - 1]) ? 1 : g[i + 1][j] - f[i][j - 1] + a[i] + 1;
}
puts((a[1] >= f[1][n]) ? "First" : "Second");
}
return 0;
}