Trong dây chuyền lắp ráp máy tính tự động, có M loại linh kiện đánh số 1, 2...,M và mỗi chiếc máy
được lắp ráp lần lượt từ T linh kiện O1, O2, ..., OT theo đúng thứ tự này. (1 ≤ Oi ≤ M).
Để tự động hoá dây chuyền sản xuất, người ta sử dụng một rô-bốt lắp ráp và N dụng cụ lắp ráp. Biết được những thơng tin sau:
• Tại mỗi thời điểm, Rơ-bốt chỉ có thể cầm được 1 dụng cụ.
• Tại thời điểm bắt đầu, Rơ-bốt khơng cầm dụng cụ gì cả và phải chọn một trong số N dụng cụ đã cho, thời gian chọn khơng đáng kể.
• Khi đã có dụng cụ, Rơ-bốt sẽ sử dụng nó để lắp một linh kiện trong dãy O, biết thời gian để Rô- bốt lắp linh kiện loại v bằng dụng cụ thứ i là biv (1 ≤ i ≤ N, 1 ≤ v ≤ M).
• Sau khi lắp xong mỗi linh kiện, Rô-bốt được phép đổi dụng cụ khác để lắp linh kiện tiếp theo, biết thời gian đổi từ dụng cụ i sang dụng cụ j là aij. (Lưu ý rằng aij có thể khác aji và aii ln bằng 0).
u cầu:
Hãy lập trình cho Rơ-bốt có thể lắp ráp các linh kiện O1, O2, ..., OT một cách nhanh nhất.
Dữ liệu: Vào từ file văn bản VITERBI.INP theo khuôn dạng sau: N M T O1 O2 ... OT a11 a12 ... a1N a21 a22 ... a2N ... aN1 aN2 ... aNN b11 b12 ... ... b1M b21 b22 ... ... b2M ... bN1 bN2 ... ... bNM
Kết quả: Ghi ra file văn bản VITERBI.OUT theo khn dạng sau:
• Dịng 1: Ghi thời gian để lắp ráp xong toàn bộ T linh kiện O1, ..., OT
• Dịng 2: Ghi T số, số thứ k là số hiệu dụng cụ được chọn để lắp linh kiện thứ k trong dãy (Ok).
Các số trên một dòng của Input / Output file ghi cách nhau ít nhất một dấu cách
Ràng buộc: Tất cả các số nói tới ở trên đều là các số tự nhiên ≤ 200. Riêng N, M và T có thêm giả thiết là số dương. Ví dụ: VITERBI.INP VITERBI.OUT 3 4 8 1 2 3 4 1 2 3 4 21 3 2 1 1 3 2 1 1