(defun z(l e)(labels((i(n m)(/(-(cadr m)(cadr n))(-(car n)(car m))))(m(a)(match a((list* a b c r)(if(<(i a b)(i b c))(list* a(m(list* b c r)))(m(list* a c r))))(_ a)))(c(&rest z)(destructuring-bind ((a b)(c d))z(or(< a c)(and(= a c)(< b d))))))(mapcar(eval`(lambda(x)(cond,@(loop for(a b)on(m(remove-duplicates(sort l #'c):key #'car)) by #'cdr collect`(,(if b`(< x,(inter a b))'t)(+(*,(car a)x),(cadr a)))))))e)))