Tìm kiếm nhị phân

Xem dạng PDF

Gửi bài giải

Điểm: 0,00
Giới hạn thời gian: 2.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 dãy ~a~ gồm ~n~ (~1 \leq n \leq 3 \cdot 10^5~, ~1 \leq a_i \leq 10^9~) phần tử và một số nguyên ~x~ (~1 \leq x \leq 10^9~). Với mọi ~i~ từ ~1~ đến n, tìm phần tử bé nhất ~\geq x~ trong đoạn tiền tố gồm các phần tử từ ~1~ đến ~i~. Nếu không có phần tử nào ~\geq x~ thì in ra ~-1~.

Debug code sau:

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

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

    int n, targ; cin >> n >> targ;
    set<int> s;

    for (int i = 1; i <= n; i++) {
        int a; cin >> a;
        s.insert(a);
        auto it = lower_bound(s.begin(), s.end(), targ);
        if (it != s.end()) cout << *it << " ";
        else cout << -1 << " ";
    }

    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.