You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
#include <bits/stdc++.h>
|
|
|
|
|
|
|
|
|
|
using namespace std;
|
|
|
|
|
const int N = 10010;
|
|
|
|
|
int a[N];
|
|
|
|
|
int q, cmd, number, cnt;
|
|
|
|
|
long long p;
|
|
|
|
|
|
|
|
|
|
//解法1:暴力(使用二分优化查询)
|
|
|
|
|
//lower_bound(begin,end,number)函数是求begin-end中(排好序)第一个大于等于 number的数
|
|
|
|
|
//upper_bound(begin,end,number)函数是求begin-end中(排好序)第一个大于 number的数
|
|
|
|
|
int main() {
|
|
|
|
|
//q次询问
|
|
|
|
|
cin >> q;
|
|
|
|
|
while (q--) {
|
|
|
|
|
cin >> cmd; //1-5共5个命令
|
|
|
|
|
switch (cmd) {
|
|
|
|
|
case 1:
|
|
|
|
|
cin >> number;
|
|
|
|
|
cout << lower_bound(a + 1, a + cnt + 1, number) - a << endl;
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
cin >> number;
|
|
|
|
|
cout << a[number] << endl;
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
cin >> number;
|
|
|
|
|
p = lower_bound(a + 1, a + cnt + 1, number) - a;
|
|
|
|
|
if (p == 1) cout << -2147483647 << endl;
|
|
|
|
|
else cout << a[p - 1] << endl;
|
|
|
|
|
break;
|
|
|
|
|
case 4:
|
|
|
|
|
cin >> number;
|
|
|
|
|
p = upper_bound(a + 1, a + cnt + 1, number) - a;
|
|
|
|
|
if (p == cnt + 1) cout << 2147483647 << endl;
|
|
|
|
|
else cout << a[p] << endl;
|
|
|
|
|
break;
|
|
|
|
|
case 5:
|
|
|
|
|
cin >> number;
|
|
|
|
|
a[++cnt] = number;
|
|
|
|
|
sort(a + 1, a + cnt + 1);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}
|