有40分吗?
#include <bits/stdc++.h>
using namespace std;
const int N=100005;
int n, m, L, V;
int a[N], d[N], p[N], v[N];
int main(){
int T;
cin>>T;
while(T--){
cin>>n>>m>>L>>V;
for(int i=1;i<=n;i++){
cin>>d[i]>>v[i]>>a[i];
}
for(int i=1;i<=m;i++){
cin>>p[i];
}
int cnt=0;
for(int i=1;i<=n;i++) {
if(d[i]>p[m])continue;
if(a[i]==0){
if(v[i]>p[m]){
cnt++;
}
}
else if(a[i]>0){
int vt=v[i]*v[i]+2*a[i]*(p[m]-d[i]);
if(vt>V*V){
cnt++;
}
}
}
cout<<cnt<<" "<<m-1<<"\n";
}
return 0;
}