def count_quadruplets_ordered_4_pointers(a: list[int], k1: int, k2: int) -> int:
"""
Counts quadruplets (i, j, k, l) with i < j < k < l
such that a[i] + a[j] > k1 and a[k] + a[l] > k2.
"""
n = len(a)
total_quadruplets = 0
for j in range(1, n - 2):
for k in range(j + 1, n - 1):
i = 0
while i < j and a[i] + a[j] <= k1:
i += 1
valid_i_count = j - i
l = n - 1
while l > k and a[k] + a[l] > k2:
l -= 1
valid_l_count = n - 1 - l
total_quadruplets += valid_i_count * valid_l_count
return total_quadruplets
ZGVmIGNvdW50X3F1YWRydXBsZXRzX29yZGVyZWRfNF9wb2ludGVycyhhOiBsaXN0W2ludF0sIGsxOiBpbnQsIGsyOiBpbnQpIC0+IGludDoKICAgICIiIgogICAgQ291bnRzIHF1YWRydXBsZXRzIChpLCBqLCBrLCBsKSB3aXRoIGkgPCBqIDwgayA8IGwgCiAgICBzdWNoIHRoYXQgYVtpXSArIGFbal0gPiBrMSBhbmQgYVtrXSArIGFbbF0gPiBrMi4KICAgICIiIgogICAgbiA9IGxlbihhKQogICAgdG90YWxfcXVhZHJ1cGxldHMgPSAwCiAgICAKICAgCiAgICBmb3IgaiBpbiByYW5nZSgxLCBuIC0gMik6CiAgICAgICAgZm9yIGsgaW4gcmFuZ2UoaiArIDEsIG4gLSAxKToKICAgICAgICAgICAgCiAgICAgICAgICAKICAgICAgICAgICAgaSA9IDAKICAgICAgICAgICAgd2hpbGUgaSA8IGogYW5kIGFbaV0gKyBhW2pdIDw9IGsxOgogICAgICAgICAgICAgICAgaSArPSAxCiAgICAgICAgICAgIHZhbGlkX2lfY291bnQgPSBqIC0gaSAgCiAgICAgICAgICAgIAogICAgICAgICAgIAogICAgICAgICAgICBsID0gbiAtIDEKICAgICAgICAgICAgd2hpbGUgbCA+IGsgYW5kIGFba10gKyBhW2xdID4gazI6CiAgICAgICAgICAgICAgICBsIC09IDEKICAgICAgICAgICAgdmFsaWRfbF9jb3VudCA9IG4gLSAxIC0gbCAKICAgICAgICAgICAgCiAgICAgICAgICAgIHRvdGFsX3F1YWRydXBsZXRzICs9IHZhbGlkX2lfY291bnQgKiB2YWxpZF9sX2NvdW50CiAgICAgICAgICAgIAogICAgcmV0dXJuIHRvdGFsX3F1YWRydXBsZXRzCg==