function twoLines(a,b,c,d,t) {
let l1o = b - a
let l2o = d - c
let r = 0
for(let l1=1;l1<=l1o;l1++) {
for(let i=0;i<=(l1o-l1);i++) {
let a_ = a + i
let b_ = a_ + l1
let l2 = (l1o + l2o - l1)
for(let c_ = Math.max(b_ + 1, c - (l2 - l2o)); c_<=c && c_+l2<=t;c_++) {
let d_ = c_ + l2
console.log(`${a_}--${b_} (${b_-a_}) ${c_}--${d_} (${d_ - c_})`)
r++
}
}
}
return r
}
let r = twoLines(2,4,6,8,10)
console.log(`${r} перестановок`)
ZnVuY3Rpb24gdHdvTGluZXMoYSxiLGMsZCx0KSB7CglsZXQgbDFvID0gYiAtIGEKCWxldCBsMm8gPSBkIC0gYwoJbGV0IHIgPSAwCglmb3IobGV0IGwxPTE7bDE8PWwxbztsMSsrKSB7IAoJCWZvcihsZXQgaT0wO2k8PShsMW8tbDEpO2krKykgewoJCQlsZXQgYV8gPSBhICsgaQoJCQlsZXQgYl8gPSBhXyArIGwxCgkJCWxldCBsMiA9IChsMW8gKyBsMm8gLSBsMSkKCQkJZm9yKGxldCBjXyA9IE1hdGgubWF4KGJfICsgMSwgYyAtIChsMiAtIGwybykpOyBjXzw9YyAmJiBjXytsMjw9dDtjXysrKSB7CgkJCQlsZXQgZF8gPSBjXyArIGwyCgkJCQljb25zb2xlLmxvZyhgJHthX30tLSR7Yl99ICgke2JfLWFffSkgJHtjX30tLSR7ZF99ICgke2RfIC0gY199KWApCgkJCQlyKysKCQkJfQoJCX0KCX0KCXJldHVybiByCn0KbGV0IHIgPSB0d29MaW5lcygyLDQsNiw4LDEwKQpjb25zb2xlLmxvZyhgJHtyfSDQv9C10YDQtdGB0YLQsNC90L7QstC+0LpgKQ==