blob: f765aa7c3b1fa1c33bcd04d9fb1202164c485a86 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
package scoring
import "math"
func CalculateProximity(pos1, pos2 []int) float64 {
var score float64
i, j := 0, 0
for i < len(pos1) && j < len(pos2) {
p1 := pos1[i]
p2 := pos2[j]
dist := math.Abs(float64(p1 - p2))
if dist == 1 {
score += 15.0
} else if dist <= 5 {
score += 5.0
} else if dist <= 15 {
score += 1.0
}
if p1 < p2 {
i++
} else {
j++
}
}
return score
}
|