#include <bits/stdc++.h>
using namespace std;
int a[200005];
void solve() {
int minn = INT_MAX, maxx = INT_MIN;
int n; cin >> n;
for (int i = 1; i <= n; ++i) {
cin >> a[i];
minn = min(a[i], minn), maxx = max(a[i], maxx);
}
if (minn == a[1] || maxx == a[n]) {
cout << "YES\n";
}
else {
cout << "NO\n";
}
}
int main()
{
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int t; cin >> t;
while (t--) {
solve();
}
return 0;
}
输入一串字符串 I 代表光标
backspace 删除前面括号
(I) 则I
()I 则删除(I
I() 则I()
delete 删除后面
I() 则I)
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int n, k; cin >> n >> k;
string s; cin >> s;
int idex = s.find('I');//查找I的位置
int left = idex - 1, right = idex + 1;
// left 记录左边 right 记录右边
while (k--) {
string x; cin >> x;
if (x == "backspace") {
if (left >= 0) {
if (s[left] == '(' && s[right] == ')' && right < n) right ++;
left --;
}
}
else {//delete
if (right < n) {right++;}
}
}
for (int i = 0; i <= left; i++) {cout << s[i];}
cout << 'I';
for (int i = right; i < n; i++) {cout << s[i];}
cout << '\n';
return 0;
}
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 1e5 + 5;
int main()
{
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int n, k; cin >> n >> k;
string s; cin >> s;
int idex = s.find('I');
while (k--) {
string x; cin >> x;
if (x == "backspace") {
if (idex > 0 && idex < n - 1 && s[idex - 1] == '(' && s[idex + 1] == ')') {
s.erase(idex - 1, 1);
s.erase(idex, 1);
idex--;
}
else {
if (idex > 0) {
s.erase(idex - 1, 1);
idex--;
}
}
}
else {
if (idex < n - 1) {
s.erase(idex + 1, 1);
}
}
}
cout << s << '\n';
return 0;
}
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 1e5 + 5;
int main()
{
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int n, k; cin >> n >> k;
string s; cin >> s;
int idex = s.find('I');
vector<char> a, b;
for (int i = 0; i < idex; i++) {a.emplace_back(s[i]);}
for (int i = idex + 1; i < n; i++) {b.emplace_back(s[i]);}
reverse(b.begin(), b.end());
while (k--) {
string x; cin >> x;
if (x == "backspace") {
if (a.size()) {
if (a.back() == '(' && b.size() && b.back() == ')') {
b.pop_back();
}
a.pop_back();
}
}
else if (x == "delete") {
if (b.size()) {
b.pop_back();
}
}
else if (x == "<-") {
if (a.size()) {
b.emplace_back(a.back());
a.pop_back();
}
}
else {//"->"
if (b.size()) {
a.emplace_back(b.back());
b.pop_back();
}
}
}
for (int i = 0; i < a.size(); i++) {cout << a[i];}
cout << 'I';
for (int i = b.size() - 1; ~i; i--) {cout << b[i];}
cout << '\n';
return 0;
}