哪有问题?
  • 板块灌水区
  • 楼主Leaf59
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/9/28 10:20
  • 上次更新2024/9/28 12:22:02
查看原帖
哪有问题?
1401647
Leaf59楼主2024/9/28 10:20

第1题 删除多段
有一个包含N个元素的数组, 现在有K次操作删除,每次删除一段,删除的每一段在之前删除操作结果的基础上继续删除。输出最终剩余数组中的元素。
输入格式 第一行11个正整数:NN,范围在[1,100][1,100]
第二行NN个整数:范围在[0,10000][0,10000]
第三行11个整数:KK,范围在[1,100][1,100]

接下来K行,每行两个整数,xxyy,表示需要删除的起始下标和结束下标,xx小于yy,且在剩余元素范围内。
输出格式 一行多个整数,表示剩余的数组的元素。
输入/输出例子1 输入:
1010
11 22 33 44 55 66 77 88 99 00
33
22 44
33 66
11 11
输出:
55 00
样例解释 删除242-4后结果: 11 55 66 77 88 99 00
删除363-6结果: 11 55 00
删除111-1结果: 55 00

#include<bits/stdc++.h>
using namespace std;
int arr[10005];
int main(){
    int n,k,s,e;
    cin>>n;
    for(int i=1;i<=n;i++) cin>>arr[i];
    cin>>k;
    for(int i=1;i<=k;i++){
        cin>>s>>e;
        for(int j=n-e+s-1;j>=s;j--){
            arr[j]=arr[j+1+(e-s)];
        }
        n-=(e-s+1);
    }
    for(int i=1;i<=n;i++) cout<<arr[i]<<" ";
    return 0;
}
2024/9/28 10:20
加载中...