算法提高 交换Easy
时间限制: 1 Sec 内存限制: 512 MB提交: 1 解决: 1
[ 提交][ 状态][ 讨论版]
题目描述
给定N个整数组成的序列,每次交换当前第x个与第y个整数,要求输出最终的序列。
输入
第一行为序列的大小N(1<=N<=1000)和操作个数M(1<=M<=1000)。
第二行包含N个数字,表示初始序列。
接下来M行,每行两个整数x,y (1<=x,y<=N),表示要交换的两个整数。在一次交换中,如果x和y相等,则不会改变序列的内容。
输出
输出N行,为交换后的序列中的数。
样例输入
5 21 2 3 4 51 23 4
样例输出
21435
提示
来源
#include<iostream>
#include<string>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
int n,m,a[1005],i,temp,x,y;
cin>>n>>m;
for(i=1;i<=n;i++)
cin>>a[i];
while(m--)
{
cin>>x>>y;
if(x!=y)
{
temp=a[x];
a[x]=a[y];
a[y]=temp;
}
}
for(i=1;i<=n;i++)
cout<<a[i]<<endl;
return 0;
}