记录编号 12734 评测结果 AAAAAAAAAA
题目名称 [POI 1998] 潜水员的问题 最终得分 100
用户昵称 Gravataryanzheng 是否通过 通过
代码语言 C 运行时间 2.766 s
提交时间 2009-09-19 15:08:22 内存使用 0.79 MiB
显示代码纯文本
#include <stdio.h>

int main()
{
    FILE *in,*out;
    in=fopen("ple.in","r");
    out=fopen("ple.out","w");
    int i,j,k,f[401][401]={0},n,t[1001],a[1001],w[1001],tv,av,min=10000000;

    for(i=0;i<400;i++)
        for(j=0;j<400;j++)
            f[i][j]=10000000;
    f[0][0]=0;

    fscanf(in,"%d%d%d",&tv,&av,&n);
    for(k=1;k<=n;k++)
    {
        fscanf(in,"%d%d%d",&t[k],&a[k],&w[k]);
    }

    for(k=1;k<=n;k++)
    {
        for(i=400;i>=t[k];i--)
        {
            for(j=400;j>=a[k];j--)
            {
                if(f[i][j]>f[i-t[k]][j-a[k]]+w[k])
                {
                    f[i][j]=f[i-t[k]][j-a[k]]+w[k];
                }
            }
        }
    }

    for(i=tv;i<400;i++)
        for(j=av;j<400;j++)
            if(f[i][j]<min) min=f[i][j];

    fprintf(out,"%d\n",min);

    return 0;
}