int main() { optimize_io lli x; int x1, y1, x2, y2; cin >> T; FOR(int, t, 0, T) { cin >> N; A.clear(); FOR(int, i, 0, N) { cin >> x; PB(A, x); } init(); build(0, 0, N - 1); cin >> M; FOR(int, i, 0, M) { cin >> x1 >> y1 >> x2 >> y2; if (y1 < x2) { cout << q(x1, y1).suffixSum + q(y1 + 1, x2 - 1).sum + q(x2, y2).prefixSum << '\n'; } else { cout << max(q(x2, y1).maxSum, max(q(x1, x2 - 1).suffixSum + q(x2, y2).prefixSum, q(x1, y1).suffixSum + q(y1 + 1, y2).prefixSum ) ) << '\n'; } } } return 0; }