void Make(long l, long r, Set& s) { if (l == r) { long t = s.Value(); if (t > best) ID = l, best = t; return; } Set L, R; long mid = (l + r) >> 1; Add(s, L, l, mid); Add(s, R, mid + 1, r); Make(l, mid, R); Make(mid + 1, r, L); }