时间限制: 1Sec 内存限制: 128MB
题目描述
给定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
#include<stdio.h>
int A[10001];
void swap(int *a,int *b)
{
int index = *a;
*a = *b,*b = index;
}
int main()
{
int N,M,x,y;
scanf("%d %d",&N,&M);
for(int i = 0;i<N;i++)scanf("%d",&A[i]);
for(int i = 0;i<M;i++)
{
scanf("%d %d",&x,&y);
swap(&A[x-1],&A[y-1]);
}
for(int i = 0;i<N;i++)printf("%d\n",A[i]);
return 0;
}