#include <bits/stdc++.h>
using namespace std;
int calc(const vector<int> &a, const vector<int> &b){
int n = a.size();
int m = b.size();
vector<int> su(n + 1);
int r = m - 1;
for (int i = n - 1; i >= 0; --i){
su[i] = su[i + 1];
while (r >= 0 && b[r] > a[i]) --r;
if (r >= 0 && b[r] == a[i]) ++su[i];
}
int ans = 0;
int j = 0;
r = 0;
for(int l=0;l< m;l++){
while (j < n && a[j] <= b[l] + j) ++j;
while (r < m && b[r] - b[l] < j) ++r;
ans = max(ans, r - l + su[j]);
}
return ans;
}
int main() {
int t;
cin>>t;
while( t--){
int n, m;
cin>>n>>m;
vector<int> a(n), b(m);
for(int i=0;i< n;i++) cin>>a[i];
for(int i=0;i< m;i++) cin>>b[i];
vector<int> al, bl, ar, br;
for(int i=0;i< n;i++){
if (a[i] < 0) al.push_back(-a[i]);//lo ve como si estuvieran
//a la derecha las cajas de la izquierda
else ar.push_back(a[i]);//posición de las cajas de la derecha
}
for(int i=0;i< m;i++){
if (b[i] < 0) bl.push_back(-b[i]);//lo ve como si estuvieran
//a la derecha las posiciones especiales
else br.push_back(b[i]);//posiciones especiales de la derecha
}
sort(al.begin(), al.end());//lo ordena de menor a mayor
sort(bl.begin(), bl.end());//lo ordena de menor a mayor
cout<<calc(al, bl) + calc(ar, br)<<"\n";
}
return 0;
}
1002. Find Common Characters | 1602A - Two Subsequences |
1555A - PizzaForces | 1607B - Odd Grasshopper |
1084A - The Fair Nut and Elevator | 1440B - Sum of Medians |
1032A - Kitchen Utensils | 1501B - Napoleon Cake |
1584B - Coloring Rectangles | 1562B - Scenes From a Memory |
1521A - Nastia and Nearly Good Numbers | 208. Implement Trie |
1605B - Reverse Sort | 1607C - Minimum Extraction |
1604B - XOR Specia-LIS-t | 1606B - Update Files |
1598B - Groups | 1602B - Divine Array |
1594B - Special Numbers | 1614A - Divan and a Store |
2085. Count Common Words With One Occurrence | 2089. Find Target Indices After Sorting Array |
2090. K Radius Subarray Averages | 2091. Removing Minimum and Maximum From Array |
6. Zigzag Conversion | 1612B - Special Permutation |
1481. Least Number of Unique Integers after K Removals | 1035. Uncrossed Lines |
328. Odd Even Linked List | 1219. Path with Maximum Gold |