社区讨论

求助

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

讨论操作

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

当前回复
3 条
当前快照
1 份
快照标识符
@lqi2xj6s
此快照首次捕获于
2023/12/23 21:11
2 年前
此快照最后确认于
2023/12/24 00:40
2 年前
查看原帖

//为啥WA

CPP
#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;
}

回复

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

正在加载回复...