A
使得输出的相邻两数之和为偶数
#include<iostream>
using namespace std;
int main() {
int t;
cin >> t;
while (t--) {
int nm[2001] = { 0 }, mn[2001] = { 0 };
int n, m, j1 = 0, j2 = 0;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> m;
if (m % 2)
nm[j1++] = m;
else
mn[j2++] = m;
}
for (int i = 0; i < j1; i++)
cout << nm[i] << " ";
for (int i = 0; i < j2; i++)
cout << mn[i] << " ";
cout << endl;
}
return 0;
}
B
从首尾两次判断T与M的数量关系
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<set>
#include<map>
#include<iterator>
using namespace std;
int main() {
int t;
cin >> t;
while (t--) {
int n, n1 = 0, n2 = 0, flag = 0, n3 = 0, n4 = 0;
char s[100001];
char m;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> m;
s[i] = m;
if (m == 'T') {
n1++;
}
else {
n1--;
if (n1 < 0) {
flag = 1;
}
n2++;
}
}
for (int i = n - 1; i > -1; i--) {
if (s[i] == 'T') {
n3++;
}
else {
n3--;
if (n3 < 0) {
flag = 1;
}
n4++;
}
}
if ((n1 == n2 ||n3==n4)&& flag == 0)
cout << "YES" << endl;
else
cout << "NO" << endl;
}
return 0;
}