P1042 查找大于等于x的最小元素

Posted problems

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P1042 查找大于等于x的最小元素相关的知识,希望对你有一定的参考价值。

题目描述

现在告诉你一个长度为 (n) 的有序数组 (a_1, a_2, ..., a_n) ,以及 (q) 次询问,每次询问会给你一个数 (x) ,对于每次询问,你需要输出数组 (a) 中大于等于 (x) 的最小元素。

输入格式

输入的第一行包含一个整数 (n(1 le n le 100000)) ,用于表示数组中元素的个数。
输入的第二行包含 (n) 个整数,两两之间有一个空格,用于表示数组中的元素 (a_1, a_2, ..., a_n(1 le a_i le 10^9,并且 a_1 le a_2 le ... le a_n))
输入的第三行包含一个整数 (q(1 le q le 100000)) ,用于表示询问的次数。
接下来 (q) 行,每行包含一个整数 (x(1 le x le 10^9)) ,表示要询问的数。

输出格式

对于每一次询问的 (x) ,如果数组 (a) 中存在大于等于 (x) 的元素,则输出数组 (a) 中满足大于等于 (x) 条件的所有元素中最小的元素;否则输出“-1” 。每个输出结果占单独的一行。

样例输入

5
1 3 5 7 9
3
2
9
11

样例输出

3
9
-1

以上是关于P1042 查找大于等于x的最小元素的主要内容,如果未能解决你的问题,请参考以下文章

模拟与高精度 P1042 乒乓球

P1042 [NOIP2003 普及组] 乒乓球

P1042 [NOIP2003 普及组] 乒乓球 模拟题

SPOJ MINSUB - Largest Submatrix(二分+单调栈)

python使用heapq快速查找最大或最小的 N 个元素

面试题:在数组里查找这样的数,它大于(等于)左侧所有数,小于(等于)右侧所有数