Example #1
0
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);
}