Advertisement
maycod23

Untitled

Mar 18th, 2021
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.34 KB | None | 0 0
  1. #pragma GCC optimize("Ofast,unroll-loops")
  2. #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,mmx,avx,avx2")
  3. /*HAR HAR MAHADEV
  4. ヽ`、ヽ``、ヽ`ヽ`、、ヽ `ヽ 、ヽ`🌙`ヽヽ`ヽ、ヽ`
  5. ヽ`、ヽ``、ヽ 、``、 `、ヽ` 、` ヽ`ヽ、ヽ `、ヽ``、
  6. ヽ、``、`、ヽ``、 、ヽヽ`、`、、ヽヽ、``、 、 ヽ`、
  7. ヽ``、 ヽ`ヽ`、、ヽ `ヽ 、 🚶ヽ````ヽヽヽ`、、ヽ`、、ヽ*/
  8. //think twice code once
  9. //when its getting hard why you started
  10. # include <bits/stdc++.h>
  11. using namespace std;
  12. typedef long long ll;
  13. typedef unsigned long long ull;
  14. typedef long double ld;
  15.  
  16. typedef pair<int, int> pi;
  17. typedef pair<ll, ll> pl;
  18.  
  19. typedef vector<int> vi;
  20. typedef vector<ld> vd;
  21. typedef vector<ll> vl;
  22. typedef vector<pi> vpi;//typedef for datatype and #define for macro
  23. typedef vector<pl> vpl;
  24.  
  25. # define fast ios_base::sync_with_stdio(false);cin.tie(NULL);
  26. # define MOD 1000000007
  27. # define endl '\n'
  28. # define FOR(i, a, b) for (int i=a; i<(b); i++)
  29. # define F0R(i, a) for (int i=0; i<(a); i++)
  30. # define FORd(i,a,b) for (int i = (b)-1; i >= a; i--)
  31. # define F0Rd(i,a) for (int i = (a)-1; i >= 0; i--)
  32. # define INF 9e18
  33. # define PI 3.14159265358979323846
  34. # define lb lower_bound
  35. # define ub upper_bound
  36. # define mp make_pair
  37. # define pb push_back
  38. # define fi first
  39. # define se second
  40. # define all(a) a.begin(), a.end()
  41. mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
  42. ll lcm(ll a, ll b)
  43. {
  44. return ((a * b) / __gcd(a, b));
  45. }
  46. int main()
  47. {
  48. fast;
  49. ll t;
  50. cin >> t;
  51. while (t--)
  52. {
  53. ll i;
  54. string s; cin >> s;
  55. ll n = s.length();
  56. string check = s;
  57. sort(all(check));
  58. if (check == s)
  59. {
  60. cout << "YES" << endl;
  61. continue;
  62. }
  63. vl v1;
  64. ll j = s[0] - 48;
  65. for (i = 1; i < s.length(); i++)
  66. {
  67. if (s[i] - 48 >= j)
  68. {
  69. j = s[i] - 48;
  70. continue;
  71. }
  72. else
  73. {
  74. v1.pb(i);
  75. }
  76. }
  77. int flag1 = 0;
  78. for (i = 1; i < v1.size(); i++)
  79. {
  80. if (v1[i - 1] + 1 < v1[i]) continue;
  81. else
  82. {
  83. flag1 = 1;
  84. break;
  85. }
  86. }
  87. vl v2;
  88. v2.pb(0);
  89. j = s[1] - 48;
  90. for (i = 2; i < s.length(); i++)
  91. {
  92. if (s[i] - 48 >= j)
  93. {
  94. j = s[i] - 48;
  95. continue;
  96. }
  97. else
  98. {
  99. v2.pb(i);
  100. }
  101. }
  102. int flag2 = 0;
  103. for (i = 1; i < v2.size(); i++)
  104. {
  105. if (v2[i - 1] + 1 < v2[i]) continue;
  106. else
  107. {
  108. flag2 = 1;
  109. break;
  110. }
  111. }
  112. vl v3;//last ko lun
  113. j = s[n - 1] - 48;
  114. for (i = n - 2; i >= 0; i--)
  115. {
  116. if (s[i] - 48 <= j)
  117. {
  118. j = s[i] - 48;
  119. continue;
  120. }
  121. else
  122. {
  123. v3.pb(i);
  124. }
  125. }
  126. int flag3 = 0;
  127. reverse(all(v3));
  128. for (i = 1; i < v3.size(); i++)
  129. {
  130. if (v3[i - 1] + 1 < v3[i]) continue;
  131. else
  132. {
  133. flag3 = 1;
  134. break;
  135. }
  136. }
  137. vl v4;//last ko chod dun
  138. v4.pb(n - 1);
  139. j = s[n - 2] - 48;
  140. for (i = n - 3; i >= 0; i--)
  141. {
  142. if (s[i] - 48 <= j)
  143. {
  144. j = s[i] - 48;
  145. continue;
  146. }
  147. else
  148. {
  149. v4.pb(i);
  150. }
  151. }
  152. int flag4 = 0;
  153. reverse(all(v4));
  154. for (i = 1; i < v4.size(); i++)
  155. {
  156. if (v4[i - 1] + 1 < v4[i]) continue;
  157. else
  158. {
  159. flag4 = 1;
  160. break;
  161. }
  162. }
  163.  
  164. if (flag1 == 0 || flag2 == 0 || flag3 == 0 || flag4 == 0)
  165. {
  166. cout << "YES" << endl;
  167. }
  168. else
  169. {
  170. cout << "NO" << endl;
  171. }
  172. }
  173. return 0;
  174. }
  175. /* stuff you should look for
  176. * stack/set/gcd/palindrome/twopointer/slidingwindow
  177. prefix sum/range query/ patterns/matrices/string
  178. lexographicaly/xoor/subsequence subarray/overlapping intervals
  179. factors(rootn) primefactorisation vectorofallfactors dfs bfs msdfs
  180. lowerbound-point to first element ya toh equal ya toh just bada;
  181. upperbound- just bada element to the target if not then last wala return karega dono
  182. hi case me
  183. kahi pe bhi in 0 indexing v.begin()+0, se jis index tak jana hai usse ek jyada tak
  184. availaible snip-dfs,mint,quadraticformula,2dvector
  185. mytemp,negativemod,primefactorisation
  186. * int overflow, array bounds
  187. * special cases (n=1?)
  188. * do smth instead of nothing and stay organized
  189. * WRITE STUFF DOWN
  190. * DON'T GET STUCK ON ONE APPROACH
  191. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement