using System; using System.Collections.Generic; namespace No1475_gomi { class Program { static void Main(string[] args) { // 時計の数を読み込む // コンソールから1行読み込んでintに変換 int num = Convert.ToInt32(Console.ReadLine()); // 最終的な結果を格納するリスト List> result = new List>(); // 部品を読み込む // 時計(行)の数だけ繰り返し for (int i=0; i < num; i++) { // 1行読み込む string tmpLine = Console.ReadLine(); // 半角スペースで行を分割 string[] LineSplit = tmpLine.Split(" "); // 1行をint型リストに置き換え // stringのままでは扱いにくいため.下準備のようなものであり本問の本質的部分ではないです. List LineList = new List(); // 1行をint型に置き換えるリスト for (int j =0; j < Convert.ToInt32(LineSplit[0]) + 1; j++) { if(j != 0) // 先頭要素は部品数ではないため無視する { LineList.Add(Convert.ToInt32(LineSplit[j])); } } // 読み込んだ行から部品のリストを作成する // ソートアルゴリズムを利用・ここではバブルソート for (int j = 0; j < LineList.Count; j++) { for (int k = 0; k < LineList.Count - 1 - j; k++) { if(LineList[k] < LineList[k + 1]) // k番目の要素がk+1番目の要素より小さい { // 入れ替えを行う int tmpNum = LineList[k]; LineList[k] = LineList[k + 1]; LineList[k+1] = tmpNum; } } } result.Add(LineList); // 最終的な結果のリストに格納 } // 時計(行)の数だけ繰り返し 終了 // 結果の出力 foreach (var row in result) { // 1行出力用の変数 string outputLine = ""; foreach (var cell in row) { // 1要素追加 outputLine += cell; // 最終要素でないなら半角スペースも追加 if(row.IndexOf(cell) != row.Count - 1) { outputLine += " "; } } // コンソールに書き出す Console.WriteLine(outputLine); } } } }