結果
問題 | No.326 あみだますたー |
ユーザー |
![]() |
提出日時 | 2016-12-03 05:12:32 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 395 ms / 2,000 ms |
コード長 | 2,226 bytes |
コンパイル時間 | 2,851 ms |
コンパイル使用メモリ | 79,568 KB |
実行使用メモリ | 60,396 KB |
最終ジャッジ日時 | 2024-11-27 17:52:09 |
合計ジャッジ時間 | 11,905 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 26 |
ソースコード
import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int N = sc.nextInt();int [] now = new int [N+1];for(int i=1; i<=N; i++){now[i]=i;}int K = sc.nextInt();for(int i=0; i<K; i++){int X = sc.nextInt();int Y = sc.nextInt();int j=1;int k=1;for(; j<=N; j++){if(X==now[j]){break;}}for(;k<=N; k++){if(Y==now[k]){break;}}now[j]=Y;now[k]=X;}int [] fin = new int [N+1];for(int i=1; i<=N; i++){fin[i] = sc.nextInt();}List<String> list = new ArrayList<String>();while(true){int count=0;for(int i=1; i<=N; i++){if(now[i]<fin[i]){while(now[i]!=fin[i]){String s = now[i]+" "+(now[i]+1);list.add(s);for(int j=1; j<=N; j++){if(now[i]+1==now[j]){now[i]++;now[j]--;break;}}}}else if(now[i]>fin[i]){while(now[i]!=fin[i]){String s = (now[i]-1)+" "+now[i];list.add(s);for(int j=1; j<=N; j++){if(now[i]-1==now[j]){now[i]--;now[j]++;break;}}}}else{count++;}}if(count==N){break;}}int l=list.size();System.out.println(l);for(int i=0; i<l; i++){System.out.println(list.get(i));}}}