|
- #include <cstdio>
- #include <algorithm>
- using namespace std;
- int thing[101][1001],a[1001],b[1001],cnt[101],f[1001];
- int main()
- {
- int n,m,c,maximum=-999;
- scanf("%d%d",&m,&n);
- for(int i=1;i<=n;i++)
- {
- scanf("%d%d%d",&a[i],&b[i],&c);
- thing[c][++cnt[c]]=i;
- maximum=max(maximum,c);
- }
- for(int k=1;k<=maximum;k++)
- for(int v=m;v>=0;v--)
- for(int i=1;i<=cnt[k];i++)
- if(v>=a[thing[k][i]])
- f[v]=max(f[v],f[v-a[thing[k][i]]]+b[thing[k][i]]);
- printf("%d",f[m]);
- return 0;
- }
复制代码 |
|