Пример #1
0
func parse(pr *codejam.Problem, testCaseIndex int) *data {
	n := pr.ReadInt()

	d := &data{
		num:       n,
		testIndex: testCaseIndex,
	}

	return d
}
Пример #2
0
func parse(pr *codejam.Problem, testCaseIndex int) *data {
	d := &data{
		testIndex: testCaseIndex,
	}

	n := uint(pr.ReadInt())
	m := 1 << n

	d.xs = make([]int, m)
	d.xs = pr.ReadInts(d.xs)
	return d
}
Пример #3
0
func parse(pr *codejam.Problem, testCaseIndex int) *data {
	d := &data{
		testIndex: testCaseIndex,
	}

	n := pr.ReadInt()
	d.iPos = make([]vector, n)

	for i := 0; i < n; i++ {
		pr.ReadFloats(d.iPos[i][:])
	}

	return d
}
Пример #4
0
func parse(pr *codejam.Problem, testCaseIndex int) *vectorData {
	n := pr.ReadInt()

	vd := &vectorData{
		xs:        make([]int, n),
		ys:        make([]int, n),
		testIndex: testCaseIndex,
	}

	pr.ReadInts(vd.xs)
	pr.ReadInts(vd.ys)

	return vd
}
Пример #5
0
func parse(pr *codejam.Problem, testCaseIndex int) *data {
	d := new(data)
	d.testIndex = testCaseIndex

	n := pr.ReadInt()
	d.pairs = make([]pair, n)

	for i := 0; i < n; i++ {
		xs := pr.ReadInts(nil)
		d.pairs[i][0] = xs[0]
		d.pairs[i][1] = xs[1]
	}
	return d
}
Пример #6
0
func parse(pr *codejam.Problem, testCaseIndex int) *data {
	n := pr.ReadInt()
	m := pr.ReadInt()

	d := &data{
		flavors:             n,
		customers:           make([]*customer, m),
		customersByUnmalted: make([][]*customer, n),
		customersByMalted:   make([][]*customer, n),
		testIndex:           testCaseIndex,
	}

	for i := 0; i < m; i++ {
		nums := pr.ReadInts(nil)

		c := &customer{
			malted:   make([]int, 0, nums[0]),
			unmalted: make([]int, 0, nums[0]),
		}

		for j := 0; j < nums[0]; j++ {
			mv := nums[2*j+2] == 1
			fv := nums[2*j+1] - 1

			if mv {
				c.malted = append(c.malted, fv)
				d.customersByMalted[fv] = append(d.customersByMalted[fv], c)
			} else {
				c.unmalted = append(c.unmalted, fv)
				c.satisfied = true
				d.customersByUnmalted[fv] = append(d.customersByUnmalted[fv], c)
			}
		}

		d.customers[i] = c
	}

	return d
}
Пример #7
0
func parse(pr *codejam.Problem, testCaseIndex int) *data {
	d := &data{
		testIndex: testCaseIndex,
	}

	n := pr.ReadInt()
	d.vertices = make([]string, n)
	d.edges = make([][]int, n)

	for i := 0; i < n; i++ {
		d.vertices[i] = pr.ReadString()
	}

	for i := 0; i < n-1; i++ {
		edge := pr.ReadInts(nil)
		a, b := edge[0]-1, edge[1]-1

		d.edges[a] = append(d.edges[a], b)
		d.edges[b] = append(d.edges[b], a)
	}

	return d
}
Пример #8
0
func parse(pr *codejam.Problem, testCaseIndex int) *data {
	d := &data{
		testIndex: testCaseIndex,
	}

	n := pr.ReadInt()

	d.m = make([][]byte, 2*n)

	for i := 0; i < 2*n; i++ {
		d.m[i] = make([]byte, 2*n)

		str := pr.ReadString()

		for j := 0; j < 2*n; j++ {
			if str[j] == '1' {
				d.m[i][j] = 1
			} else {
				d.m[i][j] = 0
			}
		}
	}
	return d
}