记录编号 |
43932 |
评测结果 |
AAAAAAAAAA |
题目名称 |
智力大冲浪 |
最终得分 |
100 |
用户昵称 |
Cloud |
是否通过 |
通过 |
代码语言 |
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;
}