intmain(){ freopen ("pag.in", "r", stdin); freopen ("pag.out", "w", stdout); int n = read; for (int i = 1; i <= n; i ++) scanf ("%d %d", l + i, r + i);
ld ans = 0; for (int i = n; i; i --) { int L = l[i], R = r[i]; if (ans < L) ans = ld(L + R) / 2; elseif (ans < R) ans = (ans * (ans - L) + (ans + R) / 2 * (R - ans)) / (R - L); /* else */ /* ans = ans; */ }
int a[maxn], mod; int ls[maxn], rs[maxn]; int stk[maxn], top; ll ans;
inlineint __read() { intx(0), t(1); charo(getchar()); while (o < '0' || o > '9') { if (o == '-') t = -1; o = getchar(); } for (; o >= '0' && o <= '9'; o = getchar()) x = (x << 1) + (x << 3) + (o ^ 48); return x * t; }
inlinevoidget(int n, unsigned s, int l, int r){ usingnamespace GenHelper; z1 = s; z2 = unsigned((~s) ^ 0x233333333U); z3 = unsigned(s ^ 0x1234598766U); z4 = (~s) + 51; for (int i = 1; i <= n; i ++) { int x = rand_() & 32767; int y = rand_() & 32767; a[i] = (l + (x * 32768 + y) % (r - l + 1)); } }
structData { ll p, q, x; Data operator + (const Data &r) const { return { (p + x * r.p) % mod, (r.q + r.x * q) % mod, x * r.x % mod }; } };
Data Slove(int i, int l, int r) { if (!i) return {0, 0, 1}; Data L = Slove(ls[i], l, i - 1); Data R = Slove(rs[i], i + 1, r); Data D = {a[i], a[i], a[i]}; ans = (ans + (L.q + 1) * (R.p + 1) % mod * a[i] % mod * a[i] % mod) % mod; return L + D + R; }
signedmain() { int n = __read(), s = __read(), l = __read(), r = __read(); mod = __read(); get(n, unsigned(s), l, r);
for (int i = 1; i <= n; ++i) { while (top and a[stk[top]] < a[i]) ls[i] = stk[top--]; if (top) rs[stk[top]] = i; stk[++top] = i; } Slove(stk[1], 1, n); printf ("%lld\n", ans); }
ll n, pr[maxn], mu[maxn]; ll cnt, g[maxn]; bool vis[maxn];
inline ll __read() { ll x(0); charo(getchar()); while (o < '0' || o > '9') o = getchar(); for (; o >= '0' && o <= '9'; o = getchar()) x = (x << 1) + (x << 3) + (o ^ 48); return x; }
inlinevoidinit() { mu[1] = 1; for (ll i = 2; i < maxn; ++i) { if (!vis[i]) pr[++cnt] = i, mu[i] = -1; for (ll j = 1; j <= cnt && pr[j] * i < maxn; ++j) { vis[i * pr[j]] = 1; if (i % pr[j]) mu[i * pr[j]] = -mu[i]; elsebreak; } }
for (ll i = 1; i < maxn; ++i) g[i] = mu[i] * i * i; }
ll n, pr[maxn], mu[maxn]; ll cnt, g[maxn]; bool vis[maxn];
inline ll __read() { ll x(0); charo(getchar()); while (o < '0' || o > '9') o = getchar(); for (; o >= '0' && o <= '9'; o = getchar()) x = (x << 1) + (x << 3) + (o ^ 48); return x; }
inlinevoidinit() { mu[1] = 1; for (ll i = 2; i < maxn; ++i) { if (!vis[i]) pr[++cnt] = i, mu[i] = -1; for (ll j = 1; j <= cnt && pr[j] * i < maxn; ++j) { vis[i * pr[j]] = 1; if (i % pr[j]) mu[i * pr[j]] = -mu[i]; elsebreak; } }
for (ll i = 1; i < maxn; ++i) g[i] = g[i - 1] + mu[i] * i * i; }
signedmain() { freopen ("kfc.in", "r", stdin); freopen ("kfc.out", "w", stdout); init(); ll T = __read(); while (T--) { ll n = __read(); ll ans(0); int B = int(powl(n, 1.0l / 3)); int m = int (n / B / B); for (int i = 1; i <= B and n / i / i > m; ++i) ans += (g[i] - g[i - 1]) * S(n / i / i); for (ll i = m; i; --i) ans += S(i) * (g[int(sqrtl(n / i))] - g[int(sqrt(n / (i + 1)))]); printf ("%llu\n", ans); } }
ll n, pr[maxn], mu[maxn]; ll cnt, g[maxn]; bool vis[maxn];
inline ll __read() { ll x(0); charo(getchar()); while (o < '0' || o > '9') o = getchar(); for (; o >= '0' && o <= '9'; o = getchar()) x = (x << 1) + (x << 3) + (o ^ 48); return x; }
inlinevoidinit() { mu[1] = 1; for (ll i = 2; i < maxn; ++i) { if (!vis[i]) pr[++cnt] = i, mu[i] = -1; for (ll j = 1; j <= cnt && pr[j] * i < maxn; ++j) { vis[i * pr[j]] = 1; if (i % pr[j]) mu[i * pr[j]] = -mu[i]; elsebreak; } }
for (ll i = 1; i < maxn; ++i) g[i] = g[i - 1] + mu[i] * i * i; }