結果
| 問題 |
No.397 NO MORE KADOMATSU
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-07-15 23:16:35 |
| 言語 | Java (openjdk 23) |
| 結果 |
TLE
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 1,321 bytes |
| コンパイル時間 | 2,510 ms |
| コンパイル使用メモリ | 82,572 KB |
| 実行使用メモリ | 71,872 KB |
| 最終ジャッジ日時 | 2024-07-17 00:07:14 |
| 合計ジャッジ時間 | 8,932 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | TLE * 1 -- * 17 |
ソースコード
package No300台;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
solver();
}
static int[] A;
static ArrayList<Swap> s = new ArrayList<>();
static void solver() {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
A = new int[n];
for (int i = 0; i < n; i++) {
A[i] = sc.nextInt();
}
quicksort(0, A.length - 1);
int dummy = sc.nextInt();
System.out.println(s.size());
for (int i = 0; i < s.size(); i++) {
Swap d = s.get(i);
System.out.println(d.x + " " + d.y);
}
}
static void tr(Object... objects) {
System.out.println(Arrays.deepToString(objects));
}
static int partition(int p, int r) {
int x = A[r];
int i = p - 1;
for (int j = p; j < r; j++) {
if (A[j] <= x) {
i++;
int d = A[i];
A[i] = A[j];
A[j] = d;
if (i != j) {
s.add(new Swap(i, j));
}
}
}
int d = A[i + 1];
A[i + 1] = A[r];
A[r] = d;
if (i + 1 != r) {
s.add(new Swap(i + 1, r));
}
return i + 1;
}
static void quicksort(int p, int r) {
int q = partition(p, r);
if (p < q - 1)
quicksort(p, q - 1);
if (q + 1 < r)
quicksort(q + 1, r);
}
static class Swap {
int x;
int y;
Swap(int x, int y) {
this.x = x;
this.y = y;
}
}
}