#include<bits/stdc++.h>
#define ll long long int
#define pb push_back
#define mpp make_pair
#define F first
#define S second
using namespace std;
const int N=5e2+5;
const ll infi=1e18+5;
const ll mod=1e9+7;
pair<ll,pair<ll,ll> >x[505];
ll s[N],e[N],l[N];
ll dp[10005][105];
ll n;
ll fun(ll t,ll idx)
{
if(idx==0)
return 0;
ll &var=dp[t][idx];
if(var!=-1)
return var;
ll et=x[idx].S.F;
ll energy=x[idx].S.S;
ll cost=x[idx].F;
var=max((ll)0,energy-cost*t) + fun(t+et,idx-1);
var=max(var,fun(t,idx-1));
return var;
}
int main()
{
ll tt;
cin>>tt;
for(ll ii=1;ii<=tt;ii++)
{
cout<<"Case #"<<ii<<": ";
cin>>n;
ll i;
for(i=1;i<=n;i++)
{
cin>>s[i]>>e[i]>>l[i];
x[i]=mpp(l[i],mpp(s[i],e[i]));
}
sort(x+1,x+n+1);
memset(dp,-1,sizeof(dp));
ll ans=fun(0,n);
cout<<ans<<"\n";
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBsbCBsb25nIGxvbmcgaW50CiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgbXBwIG1ha2VfcGFpcgojZGVmaW5lIEYgZmlyc3QKI2RlZmluZSBTIHNlY29uZAp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IE49NWUyKzU7CmNvbnN0IGxsIGluZmk9MWUxOCs1Owpjb25zdCBsbCBtb2Q9MWU5Kzc7CgpwYWlyPGxsLHBhaXI8bGwsbGw+ID54WzUwNV07CmxsIHNbTl0sZVtOXSxsW05dOwpsbCBkcFsxMDAwNV1bMTA1XTsKbGwgbjsKCmxsIGZ1bihsbCB0LGxsIGlkeCkKewogICAgaWYoaWR4PT0wKQogICAgcmV0dXJuIDA7CiAgICBsbCAmdmFyPWRwW3RdW2lkeF07CiAgICBpZih2YXIhPS0xKQogICAgICAgIHJldHVybiB2YXI7CiAgICBsbCBldD14W2lkeF0uUy5GOwogICAgbGwgZW5lcmd5PXhbaWR4XS5TLlM7CiAgICBsbCBjb3N0PXhbaWR4XS5GOwogICAgdmFyPW1heCgobGwpMCxlbmVyZ3ktY29zdCp0KSArIGZ1bih0K2V0LGlkeC0xKTsKICAgIHZhcj1tYXgodmFyLGZ1bih0LGlkeC0xKSk7CiAgICAKICAgIHJldHVybiB2YXI7Cn0KaW50IG1haW4oKQp7CiAgICBsbCB0dDsKICAgIGNpbj4+dHQ7CiAgICAKICAgIGZvcihsbCBpaT0xO2lpPD10dDtpaSsrKQogICAgewogICAgCWNvdXQ8PCJDYXNlICMiPDxpaTw8IjogIjsKICAgICAgICBjaW4+Pm47CiAgICAgICAgbGwgaTsKICAgICAgICBmb3IoaT0xO2k8PW47aSsrKQogICAgICAgIHsKICAgICAgICAgICAgY2luPj5zW2ldPj5lW2ldPj5sW2ldOwogICAgICAgICAgICB4W2ldPW1wcChsW2ldLG1wcChzW2ldLGVbaV0pKTsKICAgICAgICB9CiAgICAgICAgc29ydCh4KzEseCtuKzEpOwogICAgICAgIG1lbXNldChkcCwtMSxzaXplb2YoZHApKTsKICAgICAgICBsbCBhbnM9ZnVuKDAsbik7CiAgICAgICAgCiAgICAgICAgY291dDw8YW5zPDwiXG4iOwogICAgfQp9