六个线段树,代码冗长,实在调不动了,只求问下策略是否有误
完整代码
下面是核心代码
while (q--)
{
int l1, r1, l2, r2;
cin >> l1 >> r1 >> l2 >> r2;
int res = -inf;
int apmx = query1(1, l1, r1), apmi = query2(1, l1, r1), aimx = query3(1, l1, r1), aimi = query4(1, l1, r1);
int bmx = query5(1, l2, r2), bmi = query6(1, l2, r2);
if (inf > apmx && apmx >= 0)
res = max(res, bmi * apmx);
if (inf > apmi && apmi >= 0)
res = max(res, bmi * apmi);
if (-inf < aimx && aimx < 0)
res = max(res, bmx * aimx);
if (-inf < apmx && aimi < 0)
res = max(res, bmx * aimi);
cout << res << endl;
}