# 报数游戏

<p><strong>题目描述</strong><br />报数游戏
首先&#xff0c;会给他们一人一个编号&#xff0c;并且每个人的编号都不相同。接下来的每一回合&#xff0c;会给一个数&#xff0c;编号超过它的最小编号的人要报出自己的编号。如果没有人的编号比给出的数要大&#xff0c;那么编号最大的人要报出自己的编号。每个人可以重复报号。
会按照一个列表顺次报出每个回合的数&#xff0c;朋友们想知道每回合报出的编号应该是多少。
<strong>输入</strong><br />输入数据共 3 行。
第一行有两个整数 n,m(1≤n≤100,000,1≤m≤100,000)&#xff0c;分别表示参与游戏的朋友的个数&#xff0c;和游戏的回合数。 
第二行 n个整数 ai(1≤ai≤100,000,000)&#xff0c;表示朋友们每个人的编号。对于 0≤i&lt;j&lt;n&#xff0c;都有 ai&lt;aj&#xff0c;即他们的编号递增排列。 
第三行 m 个整数 qi(1≤qi≤100,000,000)&#xff0c;表示每回合给的数字。
<strong>输出</strong><br />
输出共一行 m 个整数&#xff0c;表示每回合报出的编号&#xff0c;每两个整数之间一个空格&#xff0c;最后一个数后面没有空格。</p>

以下程序实现了这一功能，请你填补空白处内容：

```cpp
#include <iostream>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;
int ai[100010], qi[100010];
int main()
{
    int a, q;
    while (cin >> a >> q)
    {
        for (int i = 0; i < a; i++)
            cin >> ai[i];
        for (int i = 0; i < q; i++)
            cin >> qi[i];
        for (int i = 0; i < q; i++)
        {
            int left = 0, right = a - 1, mid;
            while (left < right)
            {
                mid = (left + right) >> 1;
                if (ai[mid] <= qi[i])
                    left = mid + 1;
                else
                    right = mid;
            }
            _______________________;
            i ? cout << " " << ai[left - 1] : cout << ai[left - 1];
        }
        cout << endl;
    }
    return 0;
}
```

## template

```cpp
#include <iostream>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;
int ai[100010], qi[100010];
int main()
{
    int a, q;
    while (cin >> a >> q)
    {
        for (int i = 0; i < a; i++)
            cin >> ai[i];
        for (int i = 0; i < q; i++)
            cin >> qi[i];
        for (int i = 0; i < q; i++)
        {
            int left = 0, right = a - 1, mid;
            while (left < right)
            {
                mid = (left + right) >> 1;
                if (ai[mid] <= qi[i])
                    left = mid + 1;
                else
                    right = mid;
            }
            if (left - 1 < 0 || ai[left] < qi[i])
                left++;
            i ? cout << " " << ai[left - 1] : cout << ai[left - 1];
        }
        cout << endl;
    }
    return 0;
}
```

## 答案

```cpp
if (left - 1 < 0 || ai[left] < qi[i])
    left++;
```

## 选项

### A

```cpp
if (left - 1 < 0)
    left++;
```

### B

```cpp
if (ai[left] < qi[i])
    left++;
```

### C

```cpp
if (left - 1 < 0 && ai[left] < qi[i])
    left++;
```