题解 | #【模板】二分#

【模板】二分

https://www.nowcoder.com/practice/f06ba3a3008a45e0853f123a28c10836

#include <iostream>
#include <queue>
#include <map>
#include <set>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <iomanip>
#include <stack>
#include <numeric>
#include <ctime>
#include <string>
#include <bitset>
#include <unordered_map>
#include <unordered_set>

using namespace std;
using ll = long long;
const ll N = 1e5 + 5, mod = 1e9 + 7, inf = 2e18;

ll n, q, a[N];

void solve() {
    cin >> n >> q;
    for (int i = 1; i <= n; i++)cin >> a[i];

    while (q--) {
        int op, l, r, x;
        cin >> op >> l >> r >> x;
        l++;
        switch (op) {
            case 1: {
                    int idx = lower_bound(a + l, a + r + 1, x) - a;
                    if (idx >= l && idx <= r)cout << a[idx] << '\n';
                    else cout << -1 << '\n';
                    break;
                }
            case 2: {
                    int idx = upper_bound(a + l, a + r + 1, x) - a;
                    if (idx >= l && idx <= r)cout << a[idx] << '\n';
                    else cout << -1 << '\n';
                    break;
                }
            case 3: {
                    int idx = lower_bound(a + l, a + r + 1, x) - a - 1;
                    if (idx >= l && idx <= r)cout << a[idx] << '\n';
                    else cout << -1 << '\n';
                    break;
                }
            case 4: {
                    int idx = upper_bound(a + l, a + r + 1, x) - a - 1;
                    if (idx >= l && idx <= r)cout << a[idx] << '\n';
                    else cout << -1 << '\n';
                    break;
                }
        }
    }
}

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

    int t = 1;
    // cin >> t;

    while (t--) {
        solve();
    }

    return 0;
}

全部评论

相关推荐

10-22 12:03
山东大学 Java
程序员小白条:26届一般都得有实习,项目可以随便写的,如果不是开源社区的项目,随便包装,技术栈也是一样,所以本质应该找学历厂,多投投央国企和银行,技术要求稍微低一点的,或者国企控股那种,纯互联网一般都得要干活
应届生简历当中,HR最关...
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务