結果
| 問題 |
No.429 CupShuffle
|
| コンテスト | |
| ユーザー |
uafr_cs
|
| 提出日時 | 2017-11-02 18:25:30 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 1,163 ms / 2,000 ms |
| コード長 | 1,481 bytes |
| コンパイル時間 | 3,360 ms |
| コンパイル使用メモリ | 84,428 KB |
| 実行使用メモリ | 61,760 KB |
| 最終ジャッジ日時 | 2024-11-22 13:46:20 |
| 合計ジャッジ時間 | 11,965 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 16 |
ソースコード
import java.util.Arrays;
import java.util.LinkedList;
import java.util.Scanner;
public class Main {
public static long MOD = 1000000007;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
final int N = sc.nextInt();
final int K = sc.nextInt();
final int X = sc.nextInt() - 1;
int[][] numbers = new int[K][2];
for(int i = 0; i < K; i++){
if(i == X){
sc.next(); sc.next();
numbers[i][0] = numbers[i][1] = -1;
}else{
numbers[i][0] = sc.nextInt() - 1;
numbers[i][1] = sc.nextInt() - 1;
}
}
int[] forward = new int[N];
for(int i = 0; i < N; i++){ forward[i] = i; }
int[] backward = new int[N];
for(int i = 0; i < N; i++){ backward[i] = sc.nextInt() - 1; }
for(int i = 0; i < X; i++){
final int a = numbers[i][0];
final int b = numbers[i][1];
{
int tmp = forward[a];
forward[a] = forward[b];
forward[b] = tmp;
}
}
for(int i = K - 1; i > X; i--){
final int a = numbers[i][0];
final int b = numbers[i][1];
{
int tmp = backward[a];
backward[a] = backward[b];
backward[b] = tmp;
}
}
//System.out.println(Arrays.toString(forward));
//System.out.println(Arrays.toString(backward));
int diff_A = -1, diff_B = -1;
for(int i = 0; i < N; i++){
if(forward[i] == backward[i]){ continue; }
if(diff_A < 0){
diff_A = i + 1;
}else{
diff_B = i + 1;
}
}
System.out.println(diff_A + " " + diff_B);
}
}
uafr_cs