记录编号 |
12734 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[POI 1998] 潜水员的问题 |
最终得分 |
100 |
用户昵称 |
yanzheng |
是否通过 |
通过 |
代码语言 |
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;
}