记录编号 34799 评测结果 AAAAAAAAAA
题目名称 [POI 1998] 潜水员的问题 最终得分 100
用户昵称 GravatarQhelDIV 是否通过 通过
代码语言 C++ 运行时间 0.207 s
提交时间 2012-01-05 19:54:20 内存使用 0.30 MiB
显示代码纯文本
#include <fstream>
#include <cstdlib>
using namespace std;
ifstream fin("ple.in");
ofstream fout("ple.out");
int BoxN,OxSum,NSum,O[1002],N[1002],M[1002];
int f[80][80];
void Initialize()
{
int i,j,k;
	fin>>OxSum>>NSum>>BoxN;
	for(i=1;i<=BoxN;i++)
		fin>>O[i]>>N[i]>>M[i];
		for(j=0;j<=79;j++)
			for(k=0;k<=79;k++)
				f[j][k]=100000000;
		f[0][0]=0;
}
void z_o_pack()
{
int i,j,k,counter;
	for(i=1;i<=BoxN;i++)
		for(j=79;j>=0;j--)
			for(k=79;k>=0;k--)
				if(j>=O[i] && k>=N[i])
					if(f[j-O[i]][k-N[i]]+M[i]<f[j][k])
						f[j][k]=f[j-O[i]][k-N[i]]+M[i];
}

int main()
{
	Initialize();
	
	z_o_pack();
int i,j,Min=100000000;
	for(i=OxSum;i<=79;i++)
		for(j=NSum;j<=79;j++)
			if(Min>f[i][j])
				Min=f[i][j];
	fout<<Min<<endl;
	fin.close();
	fout.close();
	return 0;
}