赞
踩
- #include <iostream>
- #include <cstdio>
- #include <bits/stdc++.h>
- using namespace std;
- int arr[1005];
- int n,m;
- int a,b;
- void change(int a,int b){
- int temp;
- for(a;a<b;a++,b--){
- temp=arr[b];
- arr[b]=arr[a];
- arr[a]=temp;
- }
- }
- int main(){
- scanf("%d %d",&n,&m);
- for(int i=0;i<n;i++){
- scanf("%d",arr[i]);
- }
- for(int i=0;i<m;i++){
- scanf("%d %d\n",&a,&b);
- change(a-1,b);
- }
- for(int i=0;i<n;i++){
- printf("%d ",arr[i]);
- }
- return 0;
- }
Description
给定一个N个数的数组,M次操作。每次操作将数组的一段翻转,求最后的数组。(后期可以尝试reverse函数)
Input
第一行两个整数N,M(N,M≤1000)含义见试题描述。
第二行N个整数,表示原来的数组。
接下来M行,每行两个整数X,Y(1≤X≤Y≤N),表示翻转区间[X,Y]。
Output
一行N个整数,表示操作后的数组。
Sample Input 1
5 2 1 2 3 4 5 2 4 4 5
Sample Output 1
1 4 3 5 2
Source
容器 vector
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。