] [問題の説明を入力配列要素の組、最大の第2および第1の要素トランスデューサ素子の位置、最小要素及び最後の要素トランスデューサ位置
[]入力配列の最初の行の長さの形態、第二のアレイ入力ラインに入力要素(スペースで区切られた、キャリッジリターン、停止)
最初の最小の要素数である最大秒数の最初の要素である:出力の最初の行は、[]出力形式
出力の2行目:後の位置トランスデューサアレイ
[6]サンプル入力
4 5 6 1 2 3
[42]出力サンプル
5 4 6 2 3 1
要素が同一である[思考] 2つの配列データを定義し、[]とDATA1 []、キーボードを始めています。
、データ内の最後から二番目の要素であるDATA1ソートにDATA1、その後の質問は二番目に大きいを見つけるように頼ま押しは、見つかった場合、ちょうどこの場所を見つけるためにデータの最初の要素になります。
元の値、位置データの最初の要素に、次いで最後から二番目のDATA1要素が何である置き換える、即ちデータ要素が0のビットを置き換えます。
アレイ内のスイッチング素子のこの実現は、要求の対象である(いくつかの問題が存在し得ます)。
同様の要素の最後の位置で最小の交換を実現します。
プログラムの上に配置されるレコード:最低で二番目に大きい値の位置を記録することがあります。すなわち、2つのためのサイクルの始まりです
代わりに2つのサイクルのためのプログラムが間違っている可能性があります。
最後に、必要な合計出力ビットとして。
[コード:]
インポートjava.util.Scanner;
パブリック静的スキャナSC =新しいスキャナ(System.in)。
パブリックstatic int型N = sc.nextInt()。
公共の静的なint型のX;
公共の静的なint型のZ;
INT []データ=新しいINT [N]。
INT [] DATA1 =新しいINT [N]。
以下のために(INT iが= 0、I <N; I ++){
データ[I] = sc.nextInt()。
DATA1 [I] =データ[I];
}
は、Arrays.sort(DATA1)。
以下のために(INT I = 0、I <N; I ++){
IF(データ[I] == DATA1 [N - 2]){
Z = I。
}
{(データ[I] == DATA1 [0])であれば
、X = I。
}
}
のために(INT I = 0、I <N - 、I ++){
IF(DATA [I] == DATAL [N-- 2]){
DATA [I] = DATA [0]。
データ[0] = DATAL [N - 2];
BREAK;
}
}
(INTがI = 0、I <data1.length; I ++)用{
IF(データ[I] == DATA1 [0]){
データ[I] =データ[N - 1]。
データ[N - 1] = DATA1 [0]。
ブレーク;
}
}
System.out.print(X + 1 + "「)。
System.out.println(Z + 1)。
以下のために(INT iが= 0、I <N; I ++){
System.out.print(データ[I] + "「)。
}
}
}