#include #include #include #include #include #include #include using namespace std; const int N = 1110; struct Node { int x,y,z; double k; }a[N]; bool cmp(Node a,Node b) { return a.k>b.k; } int f[N*3]; int main() { int n; int t; scanf("%d",&t); while(t--) { int m; scanf("%d%d",&n,&m); memset(f,0,sizeof(f)); for(int i=0;i=a[i].z;j--) { f[j] = max(f[j],f[j-a[i].z]+max(0,a[i].x-j*a[i].y)); } } int ans=0; for(int i=0;i<=m;i++) ans = max(ans,f[i]); printf("%d\n",ans); } return 0; }