算法提高 交换Easy
算法提高 交换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; }