ngtrhieu0011
17-07-2009, 21:07
TẨU THOÁT
Sau khi xuất sắc hoàn thành nhiệm vụ, góp phần giải cứu các con tin đang bị một nhóm khủng bố bắt giữ, điệp viên AT001 bị truy sát khắp nơi. Để cắt đuôi các thế lực thù địch, AT001 lên kế hoạch tẩu thoát như sau: trong nhiều ngày (k ngày) anh sẽ bay từ thành phố này sang thành phố khác (có n thành phố), mỗi ngày một chuyến bay. Cuối cùng, anh sẽ bay đến Washington để nhận nhiệm vụ mới.
Vì ngân sách hạn hẹp, AT001 muốn thục hiện hành trình tẩu thoát ít tốn chi phí nhất. Điều này không dễ dàng vì giá vé máy bay và các chuyến bay giữa các thành phố thì khác nhau trong từng ngày. Mỗi 2 thành phố có một lịch bay nhất định và lịch này được lập lại theo một chu kỳ. Các chu kỳ này khác nhau giữa các cặp thành phố. Bạn hãy viết một chương trình giúp AT001 thục hiện cuộc tẩu thoát này.
INPUT
Tập tin input gồm nhiều test, mỗi test bắt đầu bằng một dòng chứa 2 số nguyên n, k, (2 ≤ n ≤ 10 và ; 1 ≤ k ≤ 100) trong đó n là số thành phố mà AT001 có thể đến, k là số lượng chuyến bay mà anh sẽ thực hiện. Các thành phố được đánh số từ 1..n, với 1 là Kabul (Afghanistan) và n là Washington (Mỹ), đích đến cuối cùng của anh.
Tiếp theo bạn sẽ được cho biết thông tin của n(n-1) lịch bay, mỗi lịch bay giữa 2 thành phố được mô tả trên một dòng . N-1 lịch bay đầu tiên sẽ tương ứng với các chuyến bay từ thành phố 1 đến các thành phố còn lại (lần lượt là 2, 3,…, n). Mô tả tương tự cho các lịch bay tiếp theo.
Thông tin cho một lịch bay bắt dầu bằng số nguyên d, chu kỳ của lịch bay (1 ≤ d ≤ 30). Tiếp đó là d số nguyên dương, là giá vé của các chuyến bay giữa hai thành phố trong các ngày 1, 2, 3,..,d. Giá vé là 0 cho biết không có chuyến bay giữa hai thành phố trong ngày đó.
Ví dụ, Nếu thông tin lịch bay là “3 80 0 70” cho biết chu kỳ của lịch bay là 3 ngày, ngày đầu chuyến bay có giá 80, ngày thứ hai không có chuyến bay, ngày thứ ba giá vé là 70. Sau 3 ngày chu kỳ lập lại nên ngày thứ tư chuyến bay có giá vé là 80, không có chuyến bay trong ngày thú 5, v…v.
Tập tin Input kết thúc khi n=k=0.
OUTPUT
Với mỗi bộ Test trong Input, hãy xuất ra số thứ tự của Test. Nếu có thể sắp lịch bay cho AT001 trong k ngày, bắt đầu từ thành phố 1, và cuối cùng (sau k ngày) đến thành phố n, (lưu ý: ở ngày thứ i, 1 ≤ i < k, AT001 có thể bay đến thành phố j bất kì, với điều kiện ngày thứ i có chuyến bay đến thành phố j) thì hãy xuất “Chi phi toi thieu la x”, với x là chi phí tối thiểu cho hành trình của AT001. Nếu không thể sắp được lịch bay cho AT001 với điều kiện như trên, hãy xuất “Khong the sap lich bay”.
Xuất một dòng trắng giữa các Test.
Input Mẫu
3 6
2 130 150
3 75 0 80
7 120 110 0 100 110 120 0
4 60 70 60 50
3 0 135 140
2 70 80
2 3
2 0 70
1 80
0 0
Ouput tương ứng
Chi phi toi thieu la 460.
Khong the sap lich bay.
Sau khi xuất sắc hoàn thành nhiệm vụ, góp phần giải cứu các con tin đang bị một nhóm khủng bố bắt giữ, điệp viên AT001 bị truy sát khắp nơi. Để cắt đuôi các thế lực thù địch, AT001 lên kế hoạch tẩu thoát như sau: trong nhiều ngày (k ngày) anh sẽ bay từ thành phố này sang thành phố khác (có n thành phố), mỗi ngày một chuyến bay. Cuối cùng, anh sẽ bay đến Washington để nhận nhiệm vụ mới.
Vì ngân sách hạn hẹp, AT001 muốn thục hiện hành trình tẩu thoát ít tốn chi phí nhất. Điều này không dễ dàng vì giá vé máy bay và các chuyến bay giữa các thành phố thì khác nhau trong từng ngày. Mỗi 2 thành phố có một lịch bay nhất định và lịch này được lập lại theo một chu kỳ. Các chu kỳ này khác nhau giữa các cặp thành phố. Bạn hãy viết một chương trình giúp AT001 thục hiện cuộc tẩu thoát này.
INPUT
Tập tin input gồm nhiều test, mỗi test bắt đầu bằng một dòng chứa 2 số nguyên n, k, (2 ≤ n ≤ 10 và ; 1 ≤ k ≤ 100) trong đó n là số thành phố mà AT001 có thể đến, k là số lượng chuyến bay mà anh sẽ thực hiện. Các thành phố được đánh số từ 1..n, với 1 là Kabul (Afghanistan) và n là Washington (Mỹ), đích đến cuối cùng của anh.
Tiếp theo bạn sẽ được cho biết thông tin của n(n-1) lịch bay, mỗi lịch bay giữa 2 thành phố được mô tả trên một dòng . N-1 lịch bay đầu tiên sẽ tương ứng với các chuyến bay từ thành phố 1 đến các thành phố còn lại (lần lượt là 2, 3,…, n). Mô tả tương tự cho các lịch bay tiếp theo.
Thông tin cho một lịch bay bắt dầu bằng số nguyên d, chu kỳ của lịch bay (1 ≤ d ≤ 30). Tiếp đó là d số nguyên dương, là giá vé của các chuyến bay giữa hai thành phố trong các ngày 1, 2, 3,..,d. Giá vé là 0 cho biết không có chuyến bay giữa hai thành phố trong ngày đó.
Ví dụ, Nếu thông tin lịch bay là “3 80 0 70” cho biết chu kỳ của lịch bay là 3 ngày, ngày đầu chuyến bay có giá 80, ngày thứ hai không có chuyến bay, ngày thứ ba giá vé là 70. Sau 3 ngày chu kỳ lập lại nên ngày thứ tư chuyến bay có giá vé là 80, không có chuyến bay trong ngày thú 5, v…v.
Tập tin Input kết thúc khi n=k=0.
OUTPUT
Với mỗi bộ Test trong Input, hãy xuất ra số thứ tự của Test. Nếu có thể sắp lịch bay cho AT001 trong k ngày, bắt đầu từ thành phố 1, và cuối cùng (sau k ngày) đến thành phố n, (lưu ý: ở ngày thứ i, 1 ≤ i < k, AT001 có thể bay đến thành phố j bất kì, với điều kiện ngày thứ i có chuyến bay đến thành phố j) thì hãy xuất “Chi phi toi thieu la x”, với x là chi phí tối thiểu cho hành trình của AT001. Nếu không thể sắp được lịch bay cho AT001 với điều kiện như trên, hãy xuất “Khong the sap lich bay”.
Xuất một dòng trắng giữa các Test.
Input Mẫu
3 6
2 130 150
3 75 0 80
7 120 110 0 100 110 120 0
4 60 70 60 50
3 0 135 140
2 70 80
2 3
2 0 70
1 80
0 0
Ouput tương ứng
Chi phi toi thieu la 460.
Khong the sap lich bay.