fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #pragma region Macros
  5. #define Faster ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
  6. #define ll long long
  7. #define ld long double
  8. #define pii pair<int, int>
  9. #define pll pair<long long, long long>
  10. #define all(x) x.begin(), x.end()
  11. #define rall(x) x.rbegin(), x.rend()
  12. #define pb push_back
  13. #define ff first
  14. #define ss second
  15. #define endl '\n'
  16. #define yes cout << "YES" << endl
  17. #define no cout << "NO" << endl
  18. #define m1 cout << -1 << endl
  19. #pragma endregion
  20.  
  21. #pragma region Math
  22. const ll MOD = 1e9 + 7;
  23. ll gcd(ll a, ll b) { return __gcd(a, b); }
  24. ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; }
  25. #pragma endregion
  26.  
  27. void solve() {
  28. int n; cin>>n;
  29. vector<int>v(n);
  30. int cnt1=0, cnt23=0, cnt12=0, cnt3=0;
  31. int idx=0;
  32. for(int i=0;i<n;i++){
  33. if(v[i]==1) cnt1++;
  34. else cnt23++;
  35. if(cnt1>=cnt23){
  36. idx=i;
  37. break;
  38. }
  39. }
  40. if(idx>n-3) {
  41. no;
  42. return;
  43. }
  44. for(int j=idx+1;j<n;j++){
  45. if(v[j]!=3) cnt12++;
  46. else cnt3++;
  47. if(cnt12>=cnt3){
  48. idx=j;
  49. break;
  50. }
  51. }
  52. if(idx>n-2){
  53. no;
  54. return;
  55. }
  56. yes;
  57. }
  58.  
  59. int main() {
  60. Faster;
  61. int t = 1;
  62. cin >> t;
  63. while (t--) solve();
  64. return 0;
  65. }
Success #stdin #stdout 0s 5264KB
stdin
10
8
2 1 1 3 3 1 2 3
7
2 1 3 3 3 2 3
4
1 3 3 2
6
2 2 2 1 1 1
8
3 2 1 2 1 1 2 3
3
2 1 2
3
1 2 3
5
1 3 3 1 1
5
1 1 3 3 1
3
1 3 1
stdout
YES
NO
NO
NO
YES
YES
NO
NO
YES
YES