1571: 【作】【入门】数字翻转(1502)
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:15
解决:12
题目描述
给定一个N个数的数组,M次操作。每次操作将数组的一段翻转,求最后的数组。(提示:可以尝试reverse函数)
输入
第一行两个整数N,M(N,M≤1000)含义见试题描述。
第二行N个整数,表示原来的数组。
接下来M行,每行两个整数X,Y(1≤X≤Y≤N),表示翻转区间[X,Y]。
第二行N个整数,表示原来的数组。
接下来M行,每行两个整数X,Y(1≤X≤Y≤N),表示翻转区间[X,Y]。
输出
一行N个整数,表示操作后的数组。
样例输入 复制
5 2
1 2 3 4 5
2 4
4 5
样例输出 复制
1 4 3 5 2
提示
#include<bits/stdc++.h>
using namespace std;
vector<int> v;
int main(){
int n,m,i,t,x,y;
cin>>n>>m;
for (i=0;i<n;i++) {
cin>>t;
v.push_back(t);
}
while (m--) {
cin>>x>>y;
reverse(v.begin()+x-1,v.begin()+y);
}
for (i=0;i<v.size();i++)
cout<<v[i]<<" ";
return 0;
}