function main(input) { let [N, M, K] = getIntegers(input, " "); let B = getIntegers(input, " "); let op = B.shift(); let A = getIntegers(input); B.sort((a,b)=>b-a); A.sort((a,b)=>a-b); let i=0, j=0, sum=0; while(j < M && i < N) { let val = op == '+' ? A[i]+B[j] : A[i]*B[j]; if(val >= K) { j++; if(j==M) { sum += (N-i)*j; break; } } else { sum += j; i++; } } console.log(sum); } //-- functions ------------------------------------ function getIntegers(lines, sep) { if(sep === undefined) { return lines.map(function(e) { return Number(e); }); } else { return lines.shift().split(sep).map(function(e) { if(e == '+' || e == '*') return e; return Number(e); }); } } function getBigIntegers(lines, sep=" ") { return lines.shift().split(sep).map(function(e) { return BigInt(e); }); } function getStrings(lines, sep=" ") { return lines.shift().split(sep); } function twoDimenArrayByValue(h, w, value) { const list = new Array(h); for(let i=0; i