fork download
  1. // #################################################################################################
  2. // # You told me #
  3. // # At your absolute best, you still won't be good enough for the wrong person #
  4. // # At your worst, you'll still be worth it to the right person #
  5. // # It was good while it lasted, good bye #
  6. // # I believe I really loved you... to that point that I always wanted to hear your voice #
  7. // # But before my hand could reach you... you seem to be slowly disappearing from my sight #
  8. // #################################################################################################
  9.  
  10.  
  11. // #pragma GCC optimize ("Ofast,unroll-loops")
  12. // #pragma GCC target ("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
  13.  
  14. #include <bits/stdc++.h>
  15. #include<ext/pb_ds/assoc_container.hpp>
  16.  
  17. #define pb push_back
  18. #define ff first
  19. #define ss second
  20. #define tm1 first
  21. #define tm2 second.first
  22. #define tm3 second.second
  23. #define sz(x) ll(x.size())
  24. #define fill(x, v) memset(x, v, sizeof(x))
  25. #define all(v) (v).begin(), (v).end()
  26. #define FER(i,a,b) for(ll i=ll(a); i< ll(b); ++i)
  27. #define IFR(i,a,b) for(ll i=ll(a); i>=ll(b); i-- )
  28. #define fastio ios_base::sync_with_stdio(0); cin.tie(0)
  29.  
  30. #define N 300005
  31. #define mod1 1000000007
  32. // #define mod1 998244353
  33. #define mod2 1000000009
  34. #define bas 987625403
  35. #define sqr(x) 1LL * (x) * (x)
  36. #define INF (ll) 2e9
  37.  
  38. using namespace std;
  39. using namespace __gnu_pbds;
  40.  
  41.  
  42. typedef int ll;
  43. typedef pair<ll, ll> ii;
  44. typedef pair<ll, ii> tri;
  45. typedef vector<ll> vi;
  46. typedef vector<ii> vii;
  47. typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> S_t;
  48. mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
  49. struct custom_Hash {
  50. static uint64_t splitmix64(uint64_t x) {
  51. x += 0x9e3779b97f4a7c15;
  52. x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9;
  53. x = (x ^ (x >> 27)) * 0x94d049bb133111eb;
  54. return x ^ (x >> 31);
  55. }
  56. size_t operator()(uint64_t x) const {
  57. static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count();
  58. return splitmix64(x + FIXED_RANDOM);
  59. }
  60. };
  61.  
  62. #define trace(...) fff(#__VA_ARGS__, __VA_ARGS__)
  63. template<typename t> void fff(const char* x, t&& val1) { cout << x << " : " << val1 << "\n";}
  64. template<typename t1, typename... t2> void fff(const char* x, t1&& val1, t2&&... val2){
  65. const char* xd = strchr(x + 1, ',');
  66. cout.write(x, xd - x) << " : " <<val1 << " | ";
  67. fff(xd + 1, val2...);
  68. }
  69.  
  70. inline ll add(ll a, ll b, ll mod) { return a + b < mod? a + b : a + b - mod;}
  71. inline ll rem(ll a, ll b, ll mod) { return a >= b? a - b: a - b + mod;}
  72. inline ll mul(ll a, ll b, ll mod) { return (long long) a * b % mod;}
  73. inline void Mul(ll &a, ll b, ll mod) { a = (long long) a * b % mod;}
  74. inline ll bp(ll a, ll p, ll mod){
  75. ll ret;
  76. for(ret = 1; p; p >>= 1, Mul(a, a, mod)) (p & 1) && (Mul(ret, a, mod), 1);
  77. return ret;
  78. }
  79.  
  80. static inline void read(ll &result) {
  81. bool minus = false;
  82. char ch;
  83. ch = getchar();
  84. while (true) {
  85. if (ch == '-') break;
  86. if (ch >= '0' and ch <= '9') break;
  87. ch = getchar();
  88. }
  89. (ch == '-')? minus = true: result = ch - '0';
  90. while (true) {
  91. ch = getchar();
  92. if (ch < '0' or ch > '9') break;
  93. result = (result << 3) + (result << 1) + (ch - '0');
  94. }
  95. if(minus) result = -result;
  96. }
  97. struct T {
  98. ll mn, cnt;
  99. long long val;
  100. T() {}
  101. T(ll mn, ll cnt, long long val) : mn(mn), cnt(cnt), val(val) {}
  102. inline T Op(T a, T b) {
  103. if(a.mn != b.mn) {
  104. auto cur = a.mn < b.mn ? T(a.mn, a.cnt, a.val) : T(b.mn, b.cnt, b.val);
  105. return cur;
  106. }
  107. auto cur = T(a.mn, a.cnt + b.cnt, a.val + b.val);
  108. return cur;
  109. }
  110. };
  111.  
  112. struct ST {
  113. ll n, ar[1 << 19];
  114. T t[1 << 21];
  115. ii lazy[1 << 21];
  116. inline void updpro(ii laz, ll id, ll l, ll r) {
  117. if(laz.ff) {
  118. t[id].mn += laz.ff;
  119. lazy[id].ff += laz.ff;
  120. }
  121. }
  122. inline void updpush(ii laz, ll id, ll l, ll r) {
  123. if(laz.ss) {
  124. t[id].val += laz.ss * t[id].cnt;
  125. lazy[id].ss += laz.ss;
  126. }
  127. }
  128. inline void proh(ll id, ll l, ll r) {
  129. ll mid = (l + r) >> 1;
  130. updpro(lazy[id], id << 1, l, mid);
  131. updpro(lazy[id], id << 1 | 1, mid, r);
  132. if(t[id << 1].mn <= t[id << 1 | 1].mn) {
  133. updpush(lazy[id], id << 1, l, mid);
  134. }
  135. if(t[id << 1 | 1].mn <= t[id << 1].mn) {
  136. updpush(lazy[id], id << 1 | 1, mid, r);
  137. }
  138. lazy[id] = {0, 0};
  139. }
  140. inline void Upd(ll x, ll y, ii val, ll id, ll l, ll r) {
  141. if(r <= x or y <= l) return;
  142. if(x <= l and r <= y) {
  143. updpro(val, id, l, r);
  144. updpush(val, id, l, r);
  145. return;
  146. }
  147. proh(id, l, r);
  148. ll mid = (l + r) >> 1;
  149. Upd(x, y, val, id << 1, l, mid);
  150. Upd(x, y, val, id << 1 | 1, mid, r);
  151. auto nxt = t[id].val;
  152. t[id] = t[id].Op(t[id << 1], t[id << 1 | 1]);
  153. t[id].val = nxt;
  154. }
  155. inline void Modify(ll p, ll val, ll id, ll l, ll r) {
  156. if(r <= p or p < l) return;
  157. if(l == p and l + 1 == r) {
  158. t[id] = T(val, 1, 0);
  159. lazy[id] = {0, 0};
  160. return;
  161. }
  162. proh(id, l, r);
  163. ll mid = (l + r) >> 1;
  164. Modify(p, val, id << 1, l, mid);
  165. Modify(p, val, id << 1 | 1, mid, r);
  166. auto nxt = t[id].val;
  167. t[id] = t[id].Op(t[id << 1], t[id << 1 | 1]);
  168. t[id].val = nxt;
  169. }
  170. inline long long Query(ll x, ll y, ll id, ll l, ll r) {
  171. if(x >= r or y <= l) return 0LL;
  172. if(x <= l and r <= y) return t[id].val;
  173. proh(id, l, r);
  174. ll mid = (l + r) >> 1;
  175. long long L, R;
  176. L = Query(x, y, id << 1, l, mid);
  177. R = Query(x, y, id << 1 | 1, mid, r);
  178. return L + R;
  179. }
  180. inline void Build(ll id, ll l, ll r) {
  181. if(l + 1 == r) {
  182. t[id] = T(ar[l], 1, 0);
  183. return ;
  184. }
  185. ll mid = (l + r) >> 1;
  186. Build(id << 1, l, mid);
  187. Build(id << 1 | 1, mid, r);
  188. t[id] = t[id].Op(t[id << 1], t[id << 1 | 1]);
  189. }
  190. inline void upd(ll x, ll y, ii val) { return Upd(x, y, val, 1, 0, n);}
  191. inline void modify(ll p, ll val) { Modify(p, val, 1, 0, n);}
  192. inline long long query(ll x, ll y) { return Query(x, y, 1, 0, n);}
  193. inline void build() { FER(i, 0, n << 2) lazy[i] = {0, 0}; return Build(1, 0, n);}
  194. }st;
  195.  
  196. vii Q[1 << 19];
  197. long long Answer[1 << 19];
  198.  
  199. struct PQTree {
  200. ll n;
  201. inline void build(vi &ar) {
  202. n = sz(ar);
  203. st.n = n;
  204. FER(i, 0, n) st.ar[i] = INF;
  205. st.build();
  206. vi mx = {-1}, mn = {-1};
  207. FER(i, 0, n) {
  208. st.modify(i, 1);
  209. while(sz(mx) > 1 and ar[mx.back()] < ar[i]) {
  210. auto crt = mx.back(); mx.pop_back();
  211. st.upd(mx.back() + 1, crt + 1, {ar[i] - ar[crt], 0});
  212. }
  213. mx.pb(i);
  214. while(sz(mn) > 1 and ar[mn.back()] > ar[i]) {
  215. auto crt = mn.back(); mn.pop_back();
  216. st.upd(mn.back() + 1, crt + 1, {ar[crt] - ar[i], 0});
  217. }
  218. mn.pb(i);
  219. st.upd(0, i + 1, {-1, 0});
  220. st.upd(0, n, {0, 1});
  221. for(auto [l, idx] : Q[i]) Answer[idx] = st.query(l, i + 1);
  222. }
  223. }
  224. }pqTree;
  225.  
  226. int main() {
  227. // https://c...content-available-to-author-only...s.com/contest/997/problem/E
  228. // counting good ranges on a given [l, r> offline (join nodes)
  229. fastio;
  230. string s;
  231. while(getline(cin, s)) {
  232. if(s[0] - 32 == 0 or s[0] - 32 == -23 or s[0] - 32 == -24 or s[0] - 32 == -22 or s[0] - 32 == 21) {
  233. continue;
  234. }
  235. cout << s << "\n";
  236. }
  237. return 0;
  238. }
Success #stdin #stdout 0.02s 34284KB
stdin
Analisis para Agregar tipado de typescript en vista de Seguimiento de citas Intranet	2
Agregar interfaces de los resultados de backend response  en Seguimiento de citas Intranet	2
Tipado en file resource en Seguimiento de citas Intranet	1
Tipado en file search en Seguimiento de citas Intranet	1
Tipado en file Table en Seguimiento de citas Intranet	2
Tipado en file Sidebar en Seguimiento de citas Intranet	2
Tipar con Date, string, number, ()=> void, (str: string)=> void, arreglos, objetos, observables, boolean	1
Testing de componentes modificados de Seguimiento de citas Intranet	1
Generar data	0,5
Deploy icargatest, stable, dev	0,5
stdout
Analisis para Agregar tipado de typescript en vista de Seguimiento de citas Intranet	2
Agregar interfaces de los resultados de backend response  en Seguimiento de citas Intranet	2
Tipado en file resource en Seguimiento de citas Intranet	1
Tipado en file search en Seguimiento de citas Intranet	1
Tipado en file Table en Seguimiento de citas Intranet	2
Tipado en file Sidebar en Seguimiento de citas Intranet	2
Tipar con Date, string, number, ()=> void, (str: string)=> void, arreglos, objetos, observables, boolean	1
Testing de componentes modificados de Seguimiento de citas Intranet	1
Generar data	0,5
Deploy icargatest, stable, dev	0,5