/*记得以前做cf就吃过这上面的亏,今天队里的比赛又挂了好几次才推
出来。。。晚上整理了一下,分别写了写>= , > , <= , <这四种情况。(== 就
不用写了),测试数据包含最小值和最大值的测试,有些情况结果是非法的,输出为-1 或 n*/
//#pragma comment(linker,"/STACK:327680000,327680000")
#include <iostream>
#include <cstdio>
#include <cmath>
#include <vector>
#include <cstring>
#include <algorithm>
#include <string>
#include <set>
#include <functional>
#include <numeric>
#include <sstream>
#include <stack>
#include <map>
#include <queue>
#define CL(arr, val) memset(arr, val, sizeof(arr))
#define REP(i, n) for((i) = 0; (i) < (n); ++(i))
#define FOR(i, l, h) for((i) = (l); (i) <= (h); ++(i))
#define FORD(i, h, l) for((i) = (h); (i) >= (l); --(i))
#define L(x) (x) << 1
#define R(x) (x) << 1 | 1
#define MID(l, r) (l + r) >> 1
#define Min(x, y) (x) < (y) ? (x) : (y)
#define Max(x, y) (x) < (y) ? (y) : (x)
#define E(x) (1 << (x))
#define iabs(x) (x) < 0 ? -(x) : (x)
#define OUT(x) printf("%I64d\n", x)
#define Read() freopen("data.in", "r", stdin)
#define Write() freopen("data.out", "w", stdout);
typedef long long LL;
const double eps = 1e-8;
const double PI = acos(-1.0);
const int inf = ~0u>>2;
using namespace std;
int a[111], n;
//a[l] <= tar
int bs1(int tar) {
int l = -1, r = n, mid;
while(r - l > 1) {
mid = MID(l, r);
if(a[mid] <= tar) l = mid;
else r = mid;
}
return l;
}
//a[l] < tar
int bs2(int tar) {
int l = -1, r = n, mid;
while(r - l > 1) {
mid = MID(l, r);
if(a[mid] < tar) l = mid;
else r = mid;
}
return l;
}
//tar < a[l]
int bs3(int tar) {
int l = -1, r = n, mid;
while(r > l) {
mid = MID(l, r);
if(a[mid] <= tar) l = mid + 1;
else r = mid;
}
return l;
}
//tar <= a[l]
int bs4(int tar) {
int l = -1, r = n, mid;
while(r > l) {
mid = MID(l, r);
if(a[mid] < tar) l = mid + 1;
else r = mid;
}
return l;
}
int main() {
Read();
cin >> n;
for(int i = 0; i < n; ++i) cin >> a[i];
sort(a, a + n);
for(int i = 0; i < n; ++i) printf("%-3d", i);
puts("");
for(int i = 0; i < n; ++i) printf("%-3d", a[i]);
puts("");
int fd, num;
cin >> num;
while(num--) {
cin >> fd;
cout << endl;
cout << "Test " << fd << endl;
printf("<= %d : %d\n", fd, bs1(fd));
printf("< %d : %d\n", fd, bs2(fd));
printf("> %d : %d\n", fd, bs3(fd));
printf(">= %d : %d\n", fd, bs4(fd));
}
return 0;
}
/*
Test Case:
14
-1 1 0 2 3 3 3 3 3 3 3 4 5 5
4
-1
0
2
3
5
ans:
0 1 2 3 4 5 6 7 8 9 10 11 12 13
-1 0 1 2 3 3 3 3 3 3 3 4 5 5
Test -1
x <= -1 : 0
x < -1 : -1
x > -1 : 1
x >= -1 : -1
Test 0
x <= 0 : 1
x < 0 : 0
x > 0 : 2
x >= 0 : 1
Test 2
x <= 2 : 3
x < 2 : 2
x > 2 : 4
x >= 2 : 3
Test 3
x <= 3 : 10
x < 3 : 3
x > 3 : 11
x >= 3 : 4
*/