记录编号 43932 评测结果 AAAAAAAAAA
题目名称 智力大冲浪 最终得分 100
用户昵称 GravatarCloud 是否通过 通过
代码语言 C++ 运行时间 0.014 s
提交时间 2012-10-15 16:12:57 内存使用 3.15 MiB
显示代码纯文本
  1. #include<fstream>
  2. #include<cstdlib>
  3. using namespace std;
  4. struct yu
  5. {
  6. int w;
  7. int t;
  8. }s[500];
  9. int cmp(const void *a,const void *b)
  10. {
  11. struct yu*c=(struct yu *)a;
  12. struct yu*d=(struct yu *)b;
  13. if(c->t!=d->t)
  14. return c->t - d->t;
  15. else
  16. return d->w - c->w;
  17. };
  18. int main(void)
  19. {
  20. ifstream fin("riddle.in");
  21. ofstream fout("riddle.out");
  22. int money;
  23. int n;
  24. int i,j;
  25. int f[501]={0};
  26. fin>>money>>n;
  27. for(i=0;i<n;i++)
  28. fin>>s[i].t;
  29. for(i=0;i<n;i++)
  30. fin>>s[i].w;
  31. qsort(s,n,sizeof(s[0]),cmp);
  32. for(i=0;i<n;i++)
  33. {
  34. int min=~0u>>1,k=0;
  35. for(j=s[i].t;j>0;j--)
  36. if(f[j]<s[i].w)
  37. {
  38. if(f[j]<min)
  39. {
  40. min=f[j];
  41. k=j;
  42. }
  43. }
  44. if(k)
  45. {
  46. money-=f[k];
  47. f[k]=s[i].w;
  48. }
  49. else
  50. money-=s[i].w;
  51. }
  52. fout<<money;
  53. fin.close();
  54. fout.close();
  55. return 0;
  56. }