int main() { sf("%d%d%d%d",&xa,&ya,&xb,&yb); sf("%d",&n); ren[1].x=xa;ren[1].y=ya; ren[2].x=xb;ren[2].y=ya; ren[3].x=xa;ren[3].y=yb; ren[4].x=xb;ren[4].y=yb; k=4; for (i=min(ya,yb)+1;i<=max(ya,yb)-1;i++) { k++; ren[k].x=xa;ren[k].y=i; k++; ren[k].x=xb;ren[k].y=i; } for (i=min(xa,xb)+1;i<=max(xa,xb)-1;i++) { k++; ren[k].x=i;ren[k].y=ya; k++; ren[k].x=i;ren[k].y=yb; } for (i=1;i<=n;i++) { dian.input(); sf("%d",&r); for (j=1;j<=k;j++) if (dst(dian,ren[j])<=r) ff[j]=1; } for (i=1;i<=k;i++) if (!ff[i]) m++; cout<<m<<endl; return 0; }
void input() { s.input();e.input(); }
const C &input() { mid.input(); scanf("%lf", &r); return *this; }
int main() { freopen("ti.in","r",stdin); scanf("%d",&zu); for (zz=1;zz<=zu;zz++) { yuan.input(); scanf("%d%d",&n,&m); for (i=1;i<=n;i++) { dian[i].input(); dis[i]=dst(yuan,dian[i]); scanf("%d%d",&shi[i],&shu[i]); } memset(ff,-1,sizeof(ff)); memset(cc,0,sizeof(cc)); c=0; for (i=1;i<=n;i++) { if (ff[i]!=-1) continue; c++; SEG ss(yuan,dian[i]); for (j=1;j<=n;j++) if (ol(ss,dian[j])) { cc[c]++; she[c][cc[c]]=j; } sort(&she[c][1],&she[c][cc[c]+1],cmp); ff[she[c][1]]=0; shuh[c][1]=shu[she[c][1]]; shih[c][1]=shi[she[c][1]]; for (j=2;j<=cc[c];j++) { ff[she[c][j]]=she[c][j-1]; shuh[c][j]=shuh[c][j-1]+shu[she[c][j]]; shih[c][j]=shih[c][j-1]+shi[she[c][j]]; } tou[c]=she[c][cc[c]]; } for (i=1;i<=m;i++) f[0][i]=-1; f[0][0]=0; for (i=1;i<=c;i++) { f[i][0]=0; for (j=0;j<=m;j++) { if (f[i-1][j]!=-1) f[i][j]=f[i-1][j]; else f[i][j]=-1; for (k=1;k<=cc[i];k++) if (j>=shih[i][k]&&f[i-1][j-shih[i][k]]!=-1) f[i][j]=max(f[i][j],f[i-1][j-shih[i][k]]+shuh[i][k]); } } mm=0; for (i=0;i<=m;i++) mm=max(mm,f[c][i]); cout<<mm<<endl; } return 0; }