寒假限时训练(2)S、T、U
HuiPuKui
·
·
个人记录
S - Spring Couplets
#include <bits/stdc++.h>
using namespace std;
char a[22][10];
char b[22][10];
int main()
{
int T;
cin >> T;
while(T--)
{
int n;
cin >> n;
for(int i = 0; i < n; i++) cin >>a[i];
for(int i = 0; i < n; i++) cin >>b[i];
bool flag = 1;
for(int i = 0; i < n; i++)
{
int l1 = strlen(a[i]), l2 = strlen(b[i]);
char f1 = a[i][l1-1], f2 = b[i][l2-1];
if( (f1 == '1' || f1 == '2') && (f2 == '1' || f2 == '2') ) flag = 0; //列举不符合的情况
if( (f1 == '3' || f1 == '4') && (f2 == '3' || f2 == '4') ) flag = 0;
if(i == n - 1 && (f1 == '1' || f1 == '2') ) flag = 0;
}
if(flag) cout << "YES" << endl;
else cout << "NO" << endl;
}
return 0;
}
T - Fair Division
#include <bits/stdc++.h>
using namespace std;
const int M = 10 + 5;
int a[M];
int main()
{
int t;
cin >> t;
while(t--)
{
int n;
cin >> n;
int s1 = 0, s2 = 0;
for(int i = 0; i < n; i++)
{
cin >> a[i];
if(a[i] == 1) s1++;
else s2++;
}
if(s1 % 2) cout << "NO" << endl;
else
{
if(s2%2 == 0) cout << "YES" << endl;
else
{
if(s1 >= 2) cout << "YES" << endl;
else cout << "NO" << endl;
}
}
}
return 0;
}
U - Kalindrome Array
#include <bits/stdc++.h>
using namespace std;
const int M = 2e5 + 5;
int a[M], b[M], c[M];
int main()
{
ios::sync_with_stdio(false);
int t;
cin >> t;
while (t--)
{
int n;
cin >> n;
for (int i = 1; i <= n; i++)
cin >> a[i];
int m1 = 0, m2 = 0;
int l = 1, r = n;
while (l <= r)
{
if (a[l] == a[r])
{
l++;
r--;
}
else
{
m1 = a[l];
m2 = a[r];
break;
}
}
int ib = 0, ic = 0;
for (int i = 1; i <= n; i++)
{
if (a[i] != m1)
b[++ib] = a[i];
if (a[i] != m2)
c[++ic] = a[i];
}
bool f1 = 1, f2 = 1;
for (int i = 1; i <= ib / 2; i++)
{
if (b[i] != b[ib + 1 - i])
f1 = 0;
}
for (int i = 1; i <= ic / 2; i++)
{
if (c[i] != c[ic + 1 - i])
f2 = 0;
}
if (f1 || f2)
cout << "YES" << endl;
else
cout << "NO" << endl;
}
return 0;
}