收完資料之後可以先進行一次排序,記得使用 Long Long Int。然後可以跑一個 DFS,並且宣告一個 Map 來存目前加過哪些數字、還有一個 Vector 來存目前加的數字。
如果 Vector.size() == N 就可以將目前的 Vector 存到一個二維陣列中,這個二維陣列為答案。否則就跑一個 For迴圈 從 0 到 N-1,如果目前的數字在 Map 中沒有紀錄,就再互叫一次 DFS,只是這次將 Map[數字]++,並且將 Vector.push_back(數字)。呼叫完之後記得要將 Map[數字]– 和 Vector.pop_back()。
最後輸出二維陣列中的資料。