|
@@ -15,7 +15,7 @@ var N int
|
15
|
15
|
var B int
|
16
|
16
|
var T int
|
17
|
17
|
|
18
|
|
-var Rides []Ride
|
|
18
|
+var Rides []*Ride
|
19
|
19
|
|
20
|
20
|
var Cars []*Car
|
21
|
21
|
|
|
@@ -23,6 +23,8 @@ var Sched Scheduler
|
23
|
23
|
|
24
|
24
|
type Ride struct {
|
25
|
25
|
a, b, x, y, s, f int
|
|
26
|
+
|
|
27
|
+ used bool
|
26
|
28
|
}
|
27
|
29
|
|
28
|
30
|
type Scheduler interface {
|
|
@@ -39,15 +41,28 @@ type Car struct {
|
39
|
41
|
Y int
|
40
|
42
|
}
|
41
|
43
|
|
|
44
|
+func (c *Car) Update(r *Ride) {}
|
|
45
|
+
|
|
46
|
+func Choose(c *Car) *Ride { return nil }
|
|
47
|
+
|
42
|
48
|
func assign() bool {
|
43
|
|
- c := sched.Pop()
|
|
49
|
+ c := Sched.Pop()
|
|
50
|
+ if c == nil {
|
|
51
|
+ return false
|
|
52
|
+ }
|
44
|
53
|
r := Choose(c)
|
|
54
|
+ if r == nil {
|
|
55
|
+ return true
|
|
56
|
+ }
|
|
57
|
+ r.used = true
|
45
|
58
|
c.Update(r)
|
46
|
|
- sched.Add(c)
|
|
59
|
+ Sched.Add(c)
|
|
60
|
+
|
|
61
|
+ return true
|
47
|
62
|
}
|
48
|
63
|
|
49
|
64
|
func solve() {
|
50
|
|
- Sched = prioq{}
|
|
65
|
+ Sched = &prioq{}
|
51
|
66
|
|
52
|
67
|
// create cars
|
53
|
68
|
for i := 0; i < F; i++ {
|
|
@@ -93,7 +108,7 @@ func main() {
|
93
|
108
|
T = readInt()
|
94
|
109
|
|
95
|
110
|
for i := 0; i < N; i++ {
|
96
|
|
- Rides = append(Rides, Ride{
|
|
111
|
+ Rides = append(Rides, &Ride{
|
97
|
112
|
a: readInt(),
|
98
|
113
|
b: readInt(),
|
99
|
114
|
x: readInt(),
|