zl程序教程

您现在的位置是:首页 >  后端

当前栏目

问题 1491: [蓝桥杯][算法提高VIP]交换Easy

算法 问题 提高 蓝桥 交换 Easy vip
2023-06-13 09:18:28 时间

题目描述 给定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 <iostream>

using namespace std;

int main()
{
    int N,M,x,y,i;
    int a[1001];
    cin>>N>>M;
    for(i = 0;i < N;i ++){
        cin>>a[i];
    }
    for(i = 0;i < M;i ++){
        cin>>x>>y;
        int t = a[x-1];
        a[x-1] = a[y-1];
        a[y-1] = t;

    }
    for(i = 0;i < N;i ++){
        cout<<a[i]<<"\n";
    }
    return 0;
}