using namespace std;
struct lcr {
int shl;
int jz;
int shx;
string name;
} wtk[110];
int m,n,d,j,ans,k[1000][1000];
int main() {
cin>>m>>n;
d=21-m;
for(int i=1; i<=n; i++)
cin>>wtk[i].shl>>wtk[i].jz>>wtk[i].shx>>wtk[i].name;
for(int i=1; i<=n; i++)
for(int g=1;g<=n; g++)
if(wtk[i].name==wtk[g].name&&wtk[i].shl+wtk[g].shl<=wtk[i].shx) {
wtk[i].shl=wtk[i].shl+wtk[g].shl;
wtk[g].shl=0;
}
for(int i=1; i<=d+1; i++){
ans=k[i-1][j]+k[i][j];
for(j=1; j<=n; j++) {
k[i][j]=max(wtk[j].shl*wtk[j].jz,k[i][j]);
}
}
cout<<ans;
}```
最后一个点WA了