33 lines
735 B
C
33 lines
735 B
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
int T, M, t[105], w[105];
|
|
int dp[1005][1005];
|
|
|
|
int max(int a, int b) { return a > b ? a : b; }
|
|
|
|
int main() {
|
|
freopen("dp.in", "r", stdin);
|
|
scanf("%d%d", &T, &M);
|
|
for (int i = 1; i <= M; i++) {
|
|
scanf("%d%d", &t[i], &w[i]);
|
|
}
|
|
dp[0][0] = 0;
|
|
for (int i = 1; i <= M; i++) {
|
|
for (int j = 1; j <= T; j++) {
|
|
if (j < t[i])
|
|
dp[i][j] = dp[i - 1][j];
|
|
else
|
|
dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - t[i]] + w[i]);
|
|
}
|
|
}
|
|
printf("%d\n", dp[M][T]);
|
|
// for(int i=1;i<=M;i++){
|
|
// for(int j=1;j<=T;j++){
|
|
// printf("%d ",dp[i][j]);
|
|
// }
|
|
// printf("\n");
|
|
// }
|
|
|
|
return 0;
|
|
} |