题目描述
给定N个整数组成的序列,每次交换当前第x个与第y个整数,要求输出最终的序列。
输入
第一行为序列的大小N(1< =N< =1000)和操作个数M(1< =M< =1000)。
第二行包含N个数字,表示初始序列。
接下来M行,每行两个整数x,y (1< =x,y< =N),表示要交换的两个整数。在一次交换中,如果x和y相等,则不会改变序列的内容。
输出
输出N行,为交换后的序列中的数。
样例输入
5 2
1 2 3 4 5
1 2
3 4
样例输出
2
1
4
3
5
解题思路
这道题的交换a[x1-1]和a[x2-1]就可以了。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
int num=input.nextInt();
int tag=input.nextInt();
int[] a=new int[num];
int i,x1,x2;
for(i=0;i<num;i++)
a[i]=input.nextInt();
while(tag!=0)
{
x1=input.nextInt();
x2=input.nextInt();
int k=a[x1-1];
a[x1-1]=a[x2-1];
a[x2-1]=k;
tag--;
}
for(i=0;i<num;i++)
{
System.out.println(a[i]);
}
}
}