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; }