这是对于 n <= 20 的特判,但是这部分分全 WA
if (n <= 20 && m <= 20) {
int j = 1, suc = 0, tot = 0;
for (int i = 0; i < (1 << n); i ++) s[i] = cnt[i] = 0;
for (int i = 1; i <= n; i ++) {
bool flag = 0;
for (int j = 1; j <= m; j ++) {
if(p[j] >= d[i] && getv(v[i], p[j] - d[i], a[i]) > 1ll * V * V) s[1 << j - 1] |= (1 << i - 1), flag = 1;
}
if(flag) suc += (1 << i - 1), tot ++;
}
int ans = m;
for (int i = 0; i < (1 << m); i ++) {
s[i] = s[i - (i & -i)] | s[i & -i];
if(i != 0) cnt[i] = cnt[i - (i & -i)] + 1;
if(s[i] == suc) ans = min(ans, cnt[i]);
}
cout << tot << ' ' << m - ans << endl;
}