人間夜行

一切の有為の法 夢幻泡影の如し

RQNOJ 39 饮食问题

| 评论

#include <stdio.h>
int max(int a,int b)
{
        if(a>b) return a;
        else return b;
}
int main()
{
        int ca[22]={0};
        int f[22][35001];
        int i,r;
        int b;
        int up;
        scanf("%d%d",&up,&b);
        for(i=1;i<=b;i++) scanf("%d",&ca[i]);
        for(r=0;r<=up;r++)
                if(r<ca[1]) f[1][r]=0;
                else f[1][r]=ca[1];
        for(i=2;i<=b;i++)
                for(r=0;r<=up;r++)
                {
                        if(r<ca[i]) f[i][r]=f[i-1][r];
                        else f[i][r]=max(f[i-1][r],f[i-1][r-ca[i]]+ca[i]);
                }
        printf("%d",f[b][up]);
        return 0;
}

评论