【蓝桥杯】ADV-20 交换Easy
题目描述:
给定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
解题思路:
写水题一时爽一直写水题一直爽。
AC代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int N,M; //序列大小为N,操作个数M
cin >> N >> M;
int a[N];
for(int i = 0; i < N; i++)
{
cin >> a[i];
}
while(M--)
{
int x,y; //需要交换的俩个数所在的位置
cin >> x >> y;
swap(a[x-1],a[y-1]); //交换俩个数,下标是所在位置减一
}
for(auto it : a)
{
cout << it << endl;
}
return 0;
}
原文链接:【蓝桥杯】ADV-20 交换Easy
麦芽雪冷萃 版权所有,转载请注明出处。
还没有任何评论,你来说两句吧!