求助
查看原帖
求助
1138324
mobei1234楼主2023/12/23 21:10

//为啥WA

#include <bits/stdc++.h>

using namespace std;

long long a[1000005], b[1000005];

void f(int x, int n) {

      int l = 1, r = n, ans = 1000005, cnt = 0, mid;
      while (l <= r) {
          mid = (l + r) / 2;
          if (a[mid] == x) {
              cnt++;
              if (mid <= ans) {
                  ans = mid;
              }
              r = mid - 1;
          } else {
              if (a[mid] > x) {
                  r = mid - 1;
              } else {
                  l = mid + 1;
              }
          }

      }

      if (cnt != 0) {
          cout << ans << " ";
      } else {
          cout << -1;
      }
}

int main() {

      long long n, m;
      cin >> n >> m;
      for (int i = 1; i <= n; i++) {
          cin >> a[i];
      }
      for (int i = 1; i <= m; i++) {
          cin >> b[i];
      }

      for (int i = 1; i <= m; i++) {
          f( b[i], n);
      }
      return 0;
}

2023/12/23 21:10
加载中...