#include<bits/stdc++.h>
using namespace std;
const int N = 1e4+10;
int a[N], len;
//deepseek的
int bfind_l(int x) {
int l = 0, r = len-1;
while (l <= r) {
int mid = (l + r) / 2;
if (a[mid] >= x) r = mid - 1;
else l = mid + 1;
}
return l;
}
int bfind_r(int x) {
int l = 0, r = len-1;
while (l <= r) {
int mid = (l + r) / 2;
if (a[mid] <= x) l = mid + 1;
else r = mid - 1;
}
return r;
}
//我的
int bfind_l(int x){
// int l = 0, r = len-1;
// while(l < r){
// int mid = (l+r)/2;
// if(a[mid] >= x) r = mid;
// else l = mid + 1;
// }
// return l;
// }
// int bfind_r(int x){
// int l = 0, r = len-1;
// while(l < r){
// int mid = (l+r+1)/2;
// if(a[mid] <= x) l = mid;
// else r = mid - 1;
// }
// return l;
// }
int main() {
int q;
cin >> q;
while (q-- > 0) {
int op, x;
cin >> op >> x;
if (op == 1) {
int p = bfind_l(x);
printf("%d\n", p + 1);
} else if (op == 2) {
printf("%d\n", a[x - 1]);
} else if (op == 3) {
int p = bfind_l(x) - 1;
if (p >= 0) printf("%d\n", a[p]);
else printf("-2147483647\n");
} else if (op == 4) {
int p = bfind_r(x) + 1;
if (p < len) printf("%d\n", a[p]);
else printf("2147483647\n");
} else if (op == 5) {
int p = bfind_l(x);
for (int i = len; i > p; --i) a[i] = a[i - 1];
a[p] = x;
len++;
}
}
return 0;
}
我的只能过最后一个,但deepseek的可以全部过,但我看了一下这两个二分的输出结果不都一样吗