#include<bits/stdc++.h>
#define inf 2147483647
using namespace std;
int main(){
int n,m;
int dp[100]={};
int w[100]={},q[100][3]={};
int cnt[100]={};
cin>>m>>n;
for(int i=1;i<=n;i++){
int f;
cin>>w[i]>>q[i][0]>>f;
q[f][++cnt[f]]=i;
}
for(int i=1;i<=n;i++){
for(int j=m;j>=0;j--){
int c1,c2,c3,c4;
if(w[i]<=j)
c1=dp[j-w[i]]+q[i][0];
if(w[i]+w[q[i][1]]<=j)
c2=dp[j-w[i]-w[q[i][1]]]+q[i][0]+q[q[i][1]][0];
if(w[i]+w[q[i][2]]<=j)
c3=dp[j-w[i]-w[q[i][2]]]+q[i][0]+q[q[i][2]][0];
if(w[i]+w[q[i][1]]+w[q[i][2]]<=j)
c4=dp[j-w[i]-w[q[i][1]]-w[q[i][2]]]+q[i][0]+q[q[i][1]][0]+q[q[i][2]][0];
dp[j]=max(dp[j],max(c1,max(c2,max(c3,c4))));
}
}
cout<<dp[m];
return 0;
}
为什么几乎所有数据都会导致上述代码抛出错误qwq