You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
2.1 KiB
TypeScript

// export function tiShortChoser(
// tB: number,
// tR: number,
// sB: number,
// sR: number,
// ) {
// let tishort = 0;
// let socks = 0;
// const blueIsGrater = tB + sB > tR + sR;
// const isEquaal = tB + sB === tR + sR;
// const tIsEquale = tB === tR && tB > 0;
// const sIsEquale = sB === sR && sB > 0;
// const isBlue = tB === sB && !tIsEquale && !sIsEquale;
// const isRed = tR === sR && !tIsEquale && !sIsEquale;
// if (blueIsGrater) {
// tishort = sIsEquale && !isEquaal ? 1 : tR + 1;
// socks = tIsEquale || isEquaal ? 1 : sR + 1;
// } else {
// tishort = sIsEquale && !isEquaal ? 1 : tB + 1;
// socks = tIsEquale || isEquaal ? 1 : sB + 1;
// }
// if (tB === 0 || tR === 0) {
// tishort = 1;
// socks = tB === 0 ? sB + 1 : sR + 1;
// }
// if (sB === 0 || sR === 0) {
// socks = 1;
// tishort = sB === 0 ? tB + 1 : tR + 1;
// }
// if (isRed) {
// tishort = tR + 1;
// socks = 1;
// }
// if (isBlue) {
// tishort = tB + 1;
// socks = 1;
// }
// if (isBlue && isRed && (tB !== 0 || sB !== 0)) {
// tishort = 2;
// socks = 1;
// }
// return [tishort, socks].join(" ");
// }
export function tiShortChoser(
tB: number,
tR: number,
sB: number,
sR: number,
) {
let tishort = 0;
let socks = 0;
const ans: number[][] = [];
if (tB > 0 && sB > 0) {
tishort = tR + 1;
socks = sR + 1;
ans.push([tishort, socks])
}
if (tR > 0 && sR > 0) {
tishort = tB + 1;
socks = sB + 1;
ans.push([tishort, socks])
}
if (tB > 0 && tR > 0) {
tishort = Math.max(tB, tR) + 1;
socks = 1;
ans.push([tishort, socks])
}
if (sB > 0 && sR > 0) {
tishort = 1;
socks = Math.max(sB, sR) + 1;
ans.push([tishort, socks])
}
const result = ans.reduce((acc, currentValue) => {
const [t, s] = currentValue;
const [minT, minS] = acc;
const minSum = minT + minS;
const curSum = t + s;
if (acc.length === 0) return currentValue;
return (curSum < minSum) ? currentValue : acc;
}, [] as number[])
return result.join(" ");
}