結果
問題 | No.326 あみだますたー |
ユーザー |
![]() |
提出日時 | 2016-02-02 21:49:40 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 381 ms / 2,000 ms |
コード長 | 1,484 bytes |
コンパイル時間 | 2,811 ms |
コンパイル使用メモリ | 79,608 KB |
実行使用メモリ | 48,924 KB |
最終ジャッジ日時 | 2024-11-07 23:27:41 |
合計ジャッジ時間 | 11,341 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 26 |
ソースコード
import java.util.Arrays;import java.util.HashSet;import java.util.LinkedList;import java.util.Scanner;import java.util.Set;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);final int N = sc.nextInt();int[] current = new int[N];for(int i = 0; i < N; i++){current[i] = i;}final int K = sc.nextInt();for(int i = 0; i < K; i++){final int X = sc.nextInt() - 1;final int Y = sc.nextInt() - 1;{final int tmp = current[X];current[X] = current[Y];current[Y] = tmp;}}//System.out.println(Arrays.toString(current));int[] purpose = new int[N];for(int i = 0; i < N; i++){purpose[sc.nextInt() - 1] = i;}//System.out.println(Arrays.toString(purpose));LinkedList<String> answers = new LinkedList<String>();for(int i = 0; i < N; i++){if(current[i] != purpose[i]){for(int index = i + 1; index < N; index++){if(current[index] != purpose[i]){ continue; }{for(int j = index - 1; j >= i; j--){answers.add((j + 1) + " " + (j + 2));int tmp = current[j + 1];current[j + 1] = current[j];current[j] = tmp;}}//System.out.println(Arrays.toString(current));break;}}}System.out.println(answers.size());for(String str : answers){System.out.println(str);}//System.out.println(Arrays.toString(current));}}