记录编号 43932 评测结果 AAAAAAAAAA
题目名称 智力大冲浪 最终得分 100
用户昵称 GravatarCloud 是否通过 通过
代码语言 C++ 运行时间 0.014 s
提交时间 2012-10-15 16:12:57 内存使用 3.15 MiB
显示代码纯文本
#include<fstream>
#include<cstdlib>
using namespace std;
struct yu
{
	int w;
	int t;
}s[500];
int cmp(const void *a,const void *b)
{
	struct yu*c=(struct yu *)a;
	struct yu*d=(struct yu *)b;
	if(c->t!=d->t)
		return c->t - d->t;
	else
		return d->w - c->w;
};
int main(void)
{
	ifstream fin("riddle.in");
	ofstream fout("riddle.out");
	int money;
	int n;
	int i,j;
	int f[501]={0};
	fin>>money>>n;
	for(i=0;i<n;i++)
		fin>>s[i].t;
	for(i=0;i<n;i++)
		fin>>s[i].w;
	qsort(s,n,sizeof(s[0]),cmp);
	for(i=0;i<n;i++)
	{
		int min=~0u>>1,k=0;
		for(j=s[i].t;j>0;j--)
			if(f[j]<s[i].w)
			{
				if(f[j]<min)
				{
					min=f[j];
					k=j;
				}
			}
			if(k)
			{
				money-=f[k];
				f[k]=s[i].w;
			}
			else
				money-=s[i].w;
	}
	fout<<money;
	fin.close();
	fout.close();
	return 0;
}