# Codility: NumberOfDiscIntersections Solution

*Lesson 6 Sorting*

## Implementation

1function solution(A) {2 let i = 034 // 1 means beginning, -1 mean ending5 const points = A.map((a, i) => [6 [i - a, 1],7 [i + a, -1],8 ])9 .reduce((acc, el) => {10 acc[i++] = el[0]11 acc[i++] = el[1]12 return acc13 }, [])14 .sort((a, b) => a[0] - b[0] || b[1] - a[1])1516 let intersections = (activeCircles = 0)17 for (const [_, place] of points) {18 if (place === 1) {19 intersections += activeCircles20 activeCircles += 121 } else {22 activeCircles -= 123 }24 if (intersections > 1e7) {25 return -126 }27 }2829 return intersections30}

## References

http://www.lucainvernizzi.net/blog/2014/11/21/codility-beta-challenge-number-of-disc-intersections/

## Comments

Loading comments...

## Tags

codility

## Apply and earn a $2,500 bonus once you're hired on your first job!

Clients from the Fortune 500 to Silicon Valley startups

Choose your own rate, get paid on time

From hourly, part-time, to full-time positions

Flexible remote working environment

A lot of open JavaScript jobs!!

**Fact corner:** Referred talent are 5x more likely to pass the Toptal screening process than the average applicant.

**Still hesitate?** Read HoningJS author's guide on dealing with Toptal interview process.