diff --git a/src/647518391e258e80eedf6e06.js b/src/647518391e258e80eedf6e06.js new file mode 100644 index 0000000..ea48e6b --- /dev/null +++ b/src/647518391e258e80eedf6e06.js @@ -0,0 +1,34 @@ + +const createTwoSetsOfEqualSum = n => { + const all = n * (n+1) / 2; + if (all % 2 === 1) return []; + const half = all / 2; + const a = []; + let sum = 0; + let skip; + let i = n; + for (; i > 0; --i) { + sum += i; + if (sum > half) { + sum -= i; + skip = half-sum; + a.push(skip); + break; + } else { + a.push(i); + skip = i; + if (sum === half) break; + } + } + const b = []; + for (let j = 1; j <= i; ++j) { + if (j === skip) continue; + b.push(j); + } + return [a, b]; +}; + +createTwoSetsOfEqualSum(3); +createTwoSetsOfEqualSum(8); +createTwoSetsOfEqualSum(9); +createTwoSetsOfEqualSum(23);