天使果冻
题目链接:nowcoder 219641
到牛客看:
题目大意
要你求前 1~n 个数字中,第二大的数字。
如果有多个最大,第二大就是最大。
思路
这是个多次询问去区间第二大。
由于左端点固定是 1,我们可以直接从左往右枚举右端点,然后每次新放进去一个数。
然后就维护前两大的值,最后判断一下最大的值出现的次数,看是输出最大的还是第二大的就可以了。
代码
#include<cstdio>
using namespace std;
int n, a[100001], x;
int ans[100001], maxn, maxx, maxn2, maxx2;
int read() {
char c = getchar();
int re =