COLLECT - VOI05 Bộ sưu tập

Tags: bfs

Problem

https://vn.spoj.com/problems/COLLECT

https://oj.vnoi.info/problem/COLLECT

Một bộ sưu tập tiền xu cổ được coi là có giá trị phải gồm không ít hơn Z0 đồng tiền vàng, S0 đồng tiền bạc và M0 đồng tiền đồng. Bộ sưu tập ban đầu của Alibaba có một số lượng nhất định các đồng tiền vàng, bạc và đồng nhưng chưa phải là một bộ sưu tập có giá trị.

Tại Trụ sở của Hiệp hội những người sưu tầm tiền cổ có đặt một máy đổi tiền để giúp hội viên đổi được các bộ sưu tập có giá trị.

Tuy nhiên, máy đổi chỉ hỗ trợ việc đổi tiền trọn gói theo quy tắc đổi gói (Z1, S1, M1) lấy gói (Z2, S2, M2) đồng tiền. Các quy tắc đổi tiền khác nhau từng đôi một, được gán số hiệu tuần tự 1,2,3, . . . và được công bố trước. Hội viên có thể tạo gói tiền thích hợp từ bộ sưu tập của mình để thực hiện việc đổi tiền. Các đồng tiền nhận được sau mỗi lần đổi được gộp lại với các đồng tiền mà hội viên đang có để thành một bộ sưu tập mới và có thể được sử dụng để đổi trong những lần sau nếu cần. Số lần đổi không hạn chế, tuy nhiên, là người thực dụng, Alibaba luôn cố gắng giảm tới mức tối đa số lần đổi tiền. Mặt khác, để ngăn chặn việc đầu cơ, Hiệp hội quy định, trong mọi thời điểm, mỗi hội viên không được giữ quá 4 đồng tiền mỗi loại và không được phép đổi tiếp khi đã đổi được một bộ sưu tập có giá trị.

Yêu cầu: Cho biết số lượng các đồng tiền vàng, bạc, đồng mà Alibaba có ban đầu và các quy tắc đổi tiền. Hãy chỉ ra tất cả các bộ sưu tập tiền cổ có giá trị mà Alibaba có thể có được sau một số lần đổi không vượt quá k cho trước.

Input

  • Dòng đầu ghi số nguyên dương K ( K <= 1000 )
  • Dòng thứ 2 ghi 6 số nguyên không âm Z, S, M, Z0, S0, M0 ( 0 <= Z, S, M, Z0, S0, M0 <= 4 )
  • Các dòng tiếp theo mỗi dòng ghi 6 số nguyên không âm Z1, S1, M1, Z2, S2, M2 xác định một quy tắc đổi tiền (0 <= Z1, S1, M1, Z2, S2, M2 <= 4 )

Output

Nếu không tồn tại cách đổi để có được bộ sưu tập có giá trị, file kết quả chỉ gồm một số -1.

Trong trường hợp ngược lại, dòng đầu ghi số v là số các bộ tiền cổ có giá trị mà Alibaba có thể đổi được.

Dòng thứ i trong v dòng tiếp theo ghi 4 số nguyên Zi, Si, Mi, ki mô tả bộ sưu tập có giá trị thứ i và số lần đổi ki ít nhất không vượt quá k cần thực hiện để có được bộ sưu tập ấy. ( Các bộ Zi, Si, Mi phải đưa ra theo thứ tự từ điển )

Example

Input
2
4 0 1 3 3 3
1 0 1 1 1 1
2 0 1 1 3 3

Output
1
3 3 3 1

Tutorial


Submission

COLLECT.cpp