## SSEQ
```cpp=
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,k;
const int N = 1e6+5;
struct vcl {
int l,r,w;
bool operator < (const vcl &o) const {
return l < o.l;
}
}a[N];
int mx = 0;
const int inf = 1e18;
struct segtri {
int n;
vector<int> node,lazy;
segtri () {}
segtri (int n) :n(n) {
node.resize(4*n+5);
lazy.resize(4*n+5);
}
void down (int id) {
int val = lazy[id];
node[2*id] += val;
node[2*id+1] += val;
lazy[2*id] += val;
lazy[2*id+1] += val;
lazy[id] = 0;
}
void update (int id, int l, int r, int u, int v, int val) {
if (l > v || r < u) return;
if (l>=u&&r<=v) {
node[id] += val;
lazy[id] += val;
return;
}
if (lazy[id]) down(id);
int mid = (r+l) >> 1;
update (2*id,l,mid,u,v,val);
update (2*id+1,mid+1,r,u,v,val);
node[id] = max (node[2*id],node[2*id+1]);
}
void update (int l, int r, int val) {
update (1,1,n,l,r,val);
}
int get (int id, int l, int r, int u, int v) {
if (l > v || r < u) return 0;
if (l >= u && r <= v) return node[id];
if (lazy[id]) down(id);
int mid = (r+l) >> 1;
return max (get(2*id,l,mid,u,v),get(2*id+1,mid+1,r,u,v));
}
int get (int l, int r) {
return get (1,1,n,l,r);
}
}st;
signed main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
cin >> n;
mx = 0;
for (int i=1; i<=n; i++) {
cin >> a[i].l >> a[i].r >> a[i].w;
mx = max (mx,a[i].r);
}
st = segtri(mx);
sort (a+1,a+n+1);
int res = -1e18;
for (int i=n; i>=1; i--) {
st.update (a[i].r,mx,a[i].w);
while (i>=2&&a[i].l == a[i-1].l) {
i--;
st.update (a[i].r,mx,a[i].w);
}
res = max (res,st.get(a[i].l,mx));
}
cout << res;
}
```
## UBQ
```cpp=
#include<bits/stdc++.h>
using namespace std;
#define ii pair<int,int>
const int N = 2e5+5;
int a[N];
vector<ii> vc;
vector<int> p[N];
int n,q;
void sieve () {
int n = 2e5;
for (int i=1; i<=n; i++) {
for (int j=i; j<=n; j+=i) p[j].push_back(i);
}
}
int res[N];
struct vcl {
int val,id,sign;
};
vector<vcl> event[N];
int cnt[N];
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
sieve();
cin >> n >> q;
for (int i=1; i<=n; i++) {
cin >> a[i];
vc.push_back({a[i],i});
}
sort (vc.begin(),vc.end());
for (int i=1; i<=q; i++) {
int l,r,x; cin >> l >> r >> x;
for (auto d : p[x]) {
if (d == x) continue;
res[i] += (upper_bound (vc.begin(),vc.end(),ii(d,r)) - lower_bound(vc.begin(),vc.end(),ii(d,l)));
}
event[l-1].push_back({x,i,-1});
event[r].push_back({x,i,1});
}
for (int i=1; i<=n; i++) {
for (auto d : p[a[i]]) cnt[d]++;
for (auto cc : event[i]) {
res[cc.id] += cc.sign*cnt[cc.val];
}
}
for (int i=1; i<=q; i++) cout << res[i] << ' ';
}
```
## MRobot
```cpp=
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ii pair<int,int>
int n;
const int N = 3e5+5;
const int inf = 4e18;
struct point {
int x,y;
}a[N];
bool mini (int &a, int b) {
if (a > b) {
a = b;
return true;
}
return false;
}
bool maxi (int &a, int b) {
if (a < b) {
a = b;
return true;
}
return false;
}
bool check (int mid) {
ii L,R;
L.first = -inf;
L.second = -inf;
R.first = inf;
R.second = inf;
for (int i=1; i<=n; i++) {
int x = a[i].x - mid;
int y = a[i].y - mid;
int u = a[i].x + mid;
int v = a[i].y + mid;
maxi (L.first,x);
maxi (L.second,y);
mini (R.first,u);
mini (R.second,v);
}
return L.first <= R.first && L.second <= R.second;
}
signed main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
cin >> n;
for (int i=1; i<=n; i++) {
cin >> a[i].x >> a[i].y;
int u = a[i].x + a[i].y;
int v = a[i].x - a[i].y;
a[i] = {u,v};
}
int l = 0, r = 2e18, res = 0;
while (r >= l) {
int mid = (r+l) >> 1;
if (check(mid)) res = mid, r = mid - 1;
else l = mid + 1;
}
cout << res;
}
```