Element Extermination—CF1375C
参考文章
若
a
1
<
a
n
a_1
初始时
a
2
,
.
.
.
,
a
n
−
1
a_2, ..., a_{n-1}
a2,...,an−1 这
n
−
2
n-2
n−2 个元素中大于
a
1
a_1
a1 中的元素都能通过
a
1
a_1
a1 而被删除,而小于
a
n
a_n
an 中的元素都能通过
a
n
a_n
an 而被删除。易知这样这
n
−
2
n-2
n−2 个元素一定大于
a
1
a_1
a1 或小于
a
n
a_n
an,所以最后剩下初始时的
a
1
a_1
a1 和
a
n
a_n
an,任意删除其中一个即可。
若
a
1
>
a
n
a_1>a_n
a1>an,
因为在删除
a
a
a 中的元素的时候,易知
a
1
a_1
a1 不会减小,
a
n
a_n
an 不会增大。所以动态变化的数组
a
a
a 无论什么时候都一定满足
a
1
>
a
n
a_1>a_n
a1>an,那么显而易见
a
a
a 数组不可能剩一个元素。
C o d e Code Code
#include
#define int long long
#define sz(a) ((int)a.size())
#define all(a) a.begin(), a.end()
using namespace std;
using PII = pair<int, int>;
using i128 = __int128;
const int N = 3e5 + 10;
int n;
int a1, an;
void solve() {
cin >> n;
for (int i = 1; i <= n; i ++) {
cin >> an;
if (i == 1) {
a1 = an;
}
}
if (a1 < an) {
cout << "YES\n";
} else {
cout << "NO\n";
}
}
signed main() {
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int T = 1;
cin >> T; cin.get();
while (T --) solve();
return 0;
}