宣告一個 Map 代表不同價錢可以獲得的最大值,然後宣告另外一個 Map (這邊叫 Map1) 來做新資料的計算,算完再把資料存到 Map 中。
每次收到一個資料時都宣告 Map1,然後跑 for(auto mm:Map1) 的迴圈,並且宣告兩個變數分別為 newMoney 和 newPrice,兩個變數的值分別為「mm.first + 收到的錢」以及「mm.second + (收到的錢*重要度)」。如果 newMoney > N,代表已經超過預算,直接 continue,否則就判斷舊的 Map[newMoney] 是否 < newPrice,如果 newPrice 較大則將 Map[newMoney] 設為 newPrice,然後每次判斷 newPrice 最大值,答案就是其最大值。