A. SwapSort
テストごとの時間制限
1 秒
テストごとのメモリ制限
256 メガバイト
入力
標準入力
出力
標準出力
この問題ではあなたの目標は、n 個の整数で構成される配列を最大 n 個のスワップでソートすることです。指定された配列について、配列を非降順でソートするスワップのシーケンスを見つけます。スワップは、次々と連続して実行されます。
この問題では、スワップの数を最小限に抑える必要がないことに注意してください。あなたのタスクは、n 以下のシーケンスを見つけることです。
入力
入力の最初の行には、整数 n (1?≤?n?≤?3000) が含まれています。配列要素の数。 2 行目には、配列の要素: a0,?a1,?...,?an?-?1 (?-?109?≤?ai?≤?109) が含まれます。ここで、ai は配列の i 番目の要素です。 。要素は、左から右に 0 から n?-?1 まで番号付けされます。一部の整数は配列内に複数回出現する場合があります。
出力
最初の行に k (0?≤?k?≤?n) を出力します。スワップの数。次の k 行には、k 個のスワップの説明を 1 行に 1 つずつ含める必要があります。各スワップは、要素 ai と aj のスワップを表す、整数 i、j (0?≤?i,?j?≤?n?-?1) のペアとして出力する必要があります。ペアのインデックスは任意の順序で出力できます。スワップは、出力に表示される順序で、最初から最後まで実行されます。 i?=?j を出力し、同じ要素のペアを複数回交換することができます。
複数の答えがある場合は、いずれかを出力します。少なくとも 1 つの答えが存在することが保証されています。
サンプル テスト
入力
55 2 5 1 4
出力
20 34 2
入力
610 20 20 40 60 60
出力
入力
2101 100
出力
10 1
排个序、その後和排序前对、不一样就往后找到应该在此一位上の数、その後交换