b256: 美食專家
Tags :
Accepted rate : 1人/2人 ( 50% ) [非即時]
評分方式:
Tolerant

最近更新 : 2024-05-02 13:29

Content

你是一位美食專家,你發覺食物進食的次序會影響你對食物的感覺。

經過多年來的努力,你總結出一個食物進食次序感覺表。
這個表列出了對於任何兩種食物 a 和 b,若先吃 a 緊接著再吃 b 的話,你的愉快值是多少。
愉快值越高,代表感覺越好,愉快值亦有可能是負數即是代表這樣進食法感覺並不良好。

你有位朋友,正在準備一次重要的晚宴,她有 N 種可以選擇的食物,分別編號為 1 至 N。
為了使她的客人得到最高的總愉快值,她請你為她所準備的食物清單進行篩選。

你可以任意取捨清單內的食物,但由於食材的安排及其他處理要求,食物出埸先後關係必定要對應食物的編號。即若 b > a,則食物 b 只能出現在食物 a 之後。而同一種食最後只可以出現一次。

另外,她亦希望在進餐過程,任何兩道連續的食物中,都不會有愉快值為負數的情形出現。

Input

輸入有若干組資料每組資料每組測試數據的格式如下

- 每組數據的第一行上有兩個整數 N~F,N 代表食物的總數目 ( 2 <= N <= 50)。F則代表你的輸出是否要包括詳細的資料,詳情請參閱下面輸出的說明
- 隨後的 N 行上,每行有都有 N 個整數。其中第 i 行上的第 j 個數字代先吃食物 i,接著再吃食物 j 時的愉快值。當 i=j 時,其值為 0。
除了i=j 的情況外,其他的數字均不會為 0,且這些數值的絶對值均在 200 以內。

最後的一行上只有一個 0, 代表輸入資料的結束。

Output

對應於每一個輸入組測試數據,輸出可以是以下兩種格式的其中一種:

**當 F 為 0 時間**: 只需輸一個正整數在一行上,它代表你所找到的最高總愉快值。

**當 F 為 1 時間**: 你需要輸出以下兩行資料:
1. 第一行輸一個正整數在一行上,它代表你所找到的最高總愉快值。
2. 第二行上有兩項目資:
  - 首先輸出的是一個整數 M,它代表要得你找到的最大總愉快值時,你所選用的食物數
  - 隨後在同一行上輸出 M 個整數,這些整數順序表示你所選的食物編號

要注意的是在同一個測試數據檔案內,所有測試數據的 F 值都是相同的。

若需要輸出食物編號順序時,又同時有多種可滿足最大總愉快值的情況,則輸出的字典順序中最前的一個。
所謂字典順序是指把每個編號當為一個字母,並將編號的組合看成一個字來排序。

以下是一些順序的例子:
- [1] < [1,3,5] < [2,3]
- [1,3,5] < [2,3] < [3]
- [1, 2, 4] < [2] < [2,3,5] < [10]

但要注意的是輸出的食物編號順序中,最少要有一個食物編號。

Sample Input #1
4 0
0 3 6 16
3 0 8 7
-2 9 0 -1
1 10 10 0
4 0
0 6 14 6
3 0 6 4
1 9 0 7
5 8 2 0
0
Sample Output #1
16
21
Sample Input #2
4 1
0 3 6 16
3 0 8 7
-2 9 0 -1
1 10 10 0
4 1
0 6 14 6
3 0 6 4
1 9 0 7
5 8 2 0
0
Sample Output #2
16
2 1 4
21
3 1 3 4
測資資訊:
記憶體限制: 64 MB
不公開 測資點#0 (1%): 1.0s , <1K
不公開 測資點#1 (9%): 1.0s , <1M
不公開 測資點#2 (10%): 1.0s , <1M
不公開 測資點#3 (10%): 1.0s , <1M
不公開 測資點#4 (10%): 1.0s , <1M
不公開 測資點#5 (10%): 1.0s , <1M
不公開 測資點#6 (10%): 1.0s , <1M
不公開 測資點#7 (10%): 1.0s , <1M
不公開 測資點#8 (10%): 1.0s , <1M
不公開 測資點#9 (10%): 1.0s , <1M
不公開 測資點#10 (10%): 1.0s , <1K
Hint :
Tags:
出處:
MOIJ2024MCS [管理者:
louis@g.puic... (盧聖生Louis)
]


ID User Problem Subject Hit Post Date
沒有發現任何「解題報告」