代码如下:
#include <iostream>
using namespace std;
long long w[1000010], v[1000010], f[2][10010];
int main()
{
int t, m;
cin >> t >> m;
for(int i = 1; i <= m; i++)
cin >> w[i] >> v[i];
for(int i = 1; i <= m; i++)
for(int j = 0; j <= t; j++)
{
f[i & 1][j] = f[(i - 1) & 1][j];
if(j >= w[i])
f[i & 1][j] = max(f[(i - 1) & 1][j],f[i & 1][j - w[i]] + v[i]);
}
cout << f[m & 1][t] << endl;
return 0;
}