Tách dãy

Xem dạng PDF

Gửi bài giải

Điểm: 0,00
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 64M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++

Đề bài: Cho mảng ~a~ gồm ~n~ phần tử (~1 \leq n \leq 3 \cdot 10^6~, ~1 \leq a_i \leq 2 \cdot 10^9~) và một số nguyên ~x~ (~1 \leq x \leq 10^9~). Sắp xếp các phần tử mảng ~a~ và tách ra thành hai phần:

  • Phần Left gồm các phần tử ~\leq x~.
  • Phần Right gồm các phần tử ~> x~.

Debug code sau:

#include <bits/stdc++.h>
using namespace std;

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    int x; cin >> x;
    int n; cin >> n;
    vector<int> L; // element less than or equal to x
    vector<int> R; // element greater than x
    for(int i = 1; i <= n; i++){
        int y; cin >> y;
        if(y <= x) L.push_back(y);
        if(y > x) R.push_back(y);
    }
    sort(L.begin(), L.end());
    sort(R.begin(), R.end());
    cout << "Left: ";
    for(int i=0; i<=L.size() - 1; i++) cout << L[i] << ' ';
    cout << endl;
    cout << "Right: ";
    for(int i=0; i<=R.size() - 1; i++) cout << R[i] << ' ';

    return 0;
}

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.