Gildas Chabot преди 7 години
родител
ревизия
8db8ab7f6d
променени са 2 файла, в които са добавени 21 реда и са изтрити 6 реда
  1. 20 5
      main.go
  2. 1 1
      prioq.go

+ 20 - 5
main.go

@@ -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(),

+ 1 - 1
prioq.go

@@ -19,7 +19,7 @@ func (pq *prioq) Add(car *Car) {
19 19
 	}
20 20
 }
21 21
 
22
-func (pq *prioq) pop() *Car {
22
+func (pq *prioq) Pop() *Car {
23 23
 	if len(pq.bintree) == 0 {
24 24
 		panic("Trying to remove from empty queue")
25 25
 	}