|
@@ -114,9 +114,9 @@ func (c *Car) distanceTo(x, y int) int {
|
114
|
114
|
}
|
115
|
115
|
|
116
|
116
|
func Choose(c *Car) *Ride {
|
117
|
|
- bestRide := Rides[0]
|
118
|
|
- bestLenOfRide := Rides[0].length()
|
119
|
|
- bestTotal := c.distanceTo(Rides[0].a, Rides[0].b) + bestLenOfRide
|
|
117
|
+ var bestRide *Ride
|
|
118
|
+ bestLenOfRide := 0
|
|
119
|
+ bestTotal := 0
|
120
|
120
|
for _, r := range Rides[1:] {
|
121
|
121
|
if r.used {
|
122
|
122
|
continue
|
|
@@ -126,12 +126,11 @@ func Choose(c *Car) *Ride {
|
126
|
126
|
}
|
127
|
127
|
lenOfRide := r.length()
|
128
|
128
|
total := c.distanceTo(r.a, r.b) + lenOfRide
|
129
|
|
- if lenOfRide*bestTotal < total*bestLenOfRide {
|
|
129
|
+ if bestRide == nil || lenOfRide*bestTotal < total*bestLenOfRide {
|
130
|
130
|
bestLenOfRide = lenOfRide
|
131
|
131
|
bestTotal = total
|
132
|
132
|
bestRide = r
|
133
|
133
|
}
|
134
|
|
- return r
|
135
|
134
|
}
|
136
|
135
|
return bestRide
|
137
|
136
|
}
|