玄关求调,30分,前三个测试点正确,后面七个TLE
  • 板块学术版
  • 楼主封禁用户
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/5/11 22:27
  • 上次更新2024/5/12 09:57:08
查看原帖
玄关求调,30分,前三个测试点正确,后面七个TLE
668156
封禁用户楼主2024/5/11 22:27
#include <iostream>
#include <vector>

using namespace std;

int main() {
    int n, q, L, R;
    cin >> n >> q >> L >> R;

    vector<int> nums(n);
    for (int i = 0; i < n; i++) {
        cin >> nums[i];
    }

    for (int i = 0; i < q; i++) {
        int opt;
        cin >> opt;

        if (opt == 1) {
            int x;
            cin >> x;
            for (int j = 0; j < n; j++) {
                if (nums[j] >= L && nums[j] <= R) {
                    nums[j] += x;
                }
            }
            // 删除不在[L,R]内的数
            int idx = 0;
            for (int j = 0; j < n; j++) {
                if (nums[j] >= L && nums[j] <= R) {
                    nums[idx++] = nums[j];
                }
            }
            n = idx;
        } else if (opt == 2) {
            int count = 0;
            for (int j = 0; j < n; j++) {
                if (nums[j] >= L && nums[j] <= R) {
                    count++;
                }
            }
            cout << count << endl;
        }
    }

    return 0;
}
2024/5/11 22:27
加载中...