烦人的WA,调不了,样例对,求调
查看原帖
烦人的WA,调不了,样例对,求调
1340936
guimei121212楼主2024/10/2 00:26
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int const N = 100000;
int const M = 100000;
int main() {
    int n, m;
    cin >> n >> m;
    int a[N], c[N], b[M];
    for (int i = 1; i <= n; i++) {
        scanf("%d", &c[i]);
    }
    for (int i = 1; i <= m; i++) {
        scanf("%d", &b[i]);
    }

    int num = 0;
    for (int i = 1; i <= n; i++) {
        if (i == 1 || c[i] != c[i - 1]) {
            a[i - num] = c[i];
        } else {
            num++;
        }
    }
    n -= num;

    for (int i = 1; i <= m; i++) {
        int l = 1, r = n, mid;
        bool found = false;
        while (l <= r) {
            mid = l + (r - l) / 2;
            if (a[mid] == b[i]) {
                printf("%d", mid);
                found = true;
                break;
            } else if (a[mid] > b[i]) {
                r = mid - 1;
            } else {
                l = mid + 1;
            }
        }
        if (!found) {
            printf("-1");
        }
        if (i < m) {
            printf(" ");
        }
    }
    printf("\n");

    return 0;
}
2024/10/2 00:26
加载中...