#include <stdio.h>
typedef struct {
    int day;
    int money;
} Work;
Work a[16];
int dp[17];

int max(int a,int b) {
    return a>b? a:b;
}
int bottom_up(int n) {
    for(int i=0; i<n; i++) {
        if(i+1<=n) {
            dp[i+1]=max(dp[i],dp[i+1]);
        }
        int day=i+a[i].day;
        if(day<=n) {
            dp[day]=max(dp[day],dp[i]+a[i].money);
        }
    }
    return dp[n];
}
int main() {
    int n;
    scanf("%d",&n);
    for(int i=0; i<n; i++) {
        scanf("%d %d",&a[i].day, &a[i].money);
    }
    printf("%d",bottom_up(n));
    return 0;
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: