社区讨论

64分,样例过,求解!

P2249【深基13.例1】查找参与者 3已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@lynnfj65
此快照首次捕获于
2024/07/16 08:02
2 年前
此快照最后确认于
2024/07/16 09:17
2 年前
查看原帖
CPP
#include <bits/stdc++.h>

using namespace std;

const int N = 1e6 + 5;

int a[N];

int n, m;

int low_find(int num, int l, int r) {
    int mid = l + (r - l) / 2;
    if (l > r) return -1;
    else if (a[mid] > num) return low_find(num, l, mid - 1);
    else if (a[mid] < num) return low_find(num, mid + 1, r);
    else while (a[mid] == num) mid--;
    return ++mid;
}

// 13489 : 6

int main() {
    cin >> n >> m;
    for (int i = 1; i <= n; i++) cin >> a[i];
    for (int i = 1, tmp; i <= m; i++) {
        cin >> tmp;
        cout << low_find(tmp, 1, n) << ' ';
    }
    return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...