1414//
1515//using namespace std;
1616//
17+ //namespace fastio {
18+ // static const int SZ = 1 << 20;
19+ // char ibuf[SZ], *is = ibuf, *ie = ibuf;
20+ // inline int gc() {
21+ // if (is == ie) {
22+ // size_t len = fread(ibuf, 1, SZ, stdin);
23+ // if (len == 0) return -1;
24+ // is = ibuf;
25+ // ie = ibuf + len;
26+ // }
27+ // return *is++;
28+ // }
29+ // template <typename T>
30+ // inline bool readInt(T& x) {
31+ // int c = gc(); if (c == -1) return false;
32+ // bool neg = false;
33+ // while (c != '-' && (c < '0' || c > '9')) { c = gc(); if (c == -1) return false; }
34+ // if (c == '-') { neg = true; c = gc(); }
35+ // x = 0;
36+ // while (c >= '0' && c <= '9') { x = x * 10 + (c & 15); c = gc(); }
37+ // if (neg) x = -x;
38+ // return true;
39+ // }
40+ // char obuf[SZ]; char* op = obuf;
41+ // inline void flush() {
42+ // fwrite(obuf, 1, op - obuf, stdout);
43+ // op = obuf;
44+ // }
45+ // template <typename T>
46+ // inline void writeInt(T x, char end = '\n') {
47+ // if (op > obuf + SZ - 64) flush();
48+ // if (x == 0) { *op++ = '0'; *op++ = end; return; }
49+ // if (x < 0) { *op++ = '-'; x = -x; }
50+ // char s[24]; int n = 0;
51+ // while (x) { s[n++] = char('0' + x % 10); x /= 10; }
52+ // while (n) *op++ = s[--n];
53+ // *op++ = end;
54+ // }
55+ //}
56+ //
57+ //using fastio::readInt;
58+ //using fastio::writeInt;
59+ //using fastio::flush;
60+ //
1761//const int MAXN = 300002;
1862//const int MAXB = 601;
1963//const int POW = 9;
4387//long long ans[MAXN];
4488//
4589//inline void radix(int* idx, int* val, int siz) {
46- // fill (cntv, cntv + MAXB, 0 );
90+ // memset (cntv, 0, sizeof(int) * MAXB );
4791// for (int i = 1; i <= siz; i++) cntv[val[idx[i]] & OFFSET]++;
4892// for (int i = 1; i < MAXB; i++) cntv[i] += cntv[i - 1];
4993// for (int i = siz; i >= 1; i--) help[cntv[val[idx[i]] & OFFSET]--] = idx[i];
50- // for (int i = 1; i <= siz; i++) idx[i] = help[i] ;
51- // fill (cntv, cntv + MAXB, 0 );
94+ // memcpy(idx + 1, help + 1, siz * sizeof(int)) ;
95+ // memset (cntv, 0, sizeof(int) * MAXB );
5296// for (int i = 1; i <= siz; i++) cntv[val[idx[i]] >> POW]++;
5397// for (int i = 1; i < MAXB; i++) cntv[i] += cntv[i - 1];
5498// for (int i = siz; i >= 1; i--) help[cntv[val[idx[i]] >> POW]--] = idx[i];
55- // for (int i = 1; i <= siz; i++) idx[i] = help[i] ;
99+ // memcpy(idx + 1, help + 1, siz * sizeof(int)) ;
56100//}
57101//
58102//inline void merge(int i, int curPre, int curSuf, int curLen, int curAns) {
115159//}
116160//
117161//int main() {
118- // ios::sync_with_stdio(false);
119- // cin.tie(nullptr);
120- // cin >> n >> m;
162+ // readInt(n);
163+ // readInt(m);
121164// for (int i = 1; i <= n; i++) {
122- // cin >> arr[i];
165+ // readInt( arr[i]) ;
123166// }
124167// for (int i = 1; i <= m; i++) {
125- // cin >> op[i] >> x[i];
168+ // readInt(op[i]);
169+ // readInt(x[i]);
126170// if (op[i] == 1) {
127- // cin >> v[i];
171+ // readInt( v[i]) ;
128172// } else {
129- // cin >> y[i] >> v[i];
173+ // readInt(y[i]);
174+ // readInt(v[i]);
130175// }
131176// }
132177// int blen = 1 << POW;
138183// }
139184// for (int i = 1; i <= m; i++) {
140185// if (op[i] == 2) {
141- // cout << ans[i] << '\n' ;
186+ // writeInt( ans[i]) ;
142187// }
143188// }
189+ // flush();
144190// return 0;
145191//}
0 commit comments