记录编号 53753 评测结果 AAAAAAAAAA
题目名称 [HAOI 2009]巧克力 最终得分 100
用户昵称 Gravatarfeng 是否通过 通过
代码语言 C++ 运行时间 0.006 s
提交时间 2013-03-05 11:08:14 内存使用 0.47 MiB
显示代码纯文本
  1. #include<cstring>
  2. #include<cstdio>
  3. #include<algorithm>
  4. #include<iostream>
  5. using namespace std;
  6. int Ox[20001],Oy[20001];//此处开的大小不合理,应该是开到10002即可,不过我习惯这样
  7. int n,m;
  8. void init(){//此处仅仅是读入而已
  9. freopen("chocolate.in","r",stdin);
  10. freopen("chocolate.out","w",stdout);
  11. scanf("%d%d",&n,&m);
  12. for (int i=1;i<n;i++)
  13. scanf("%d",&Ox[i]);
  14. for (int i=1;i<m;i++)
  15. scanf("%d",&Oy[i]);
  16. }
  17. bool cmp(int a,int b){//cmp,为了sort
  18. return a>b;
  19. }
  20. void work(){
  21. sort(Ox+1,Ox+n,cmp);//排序,在这个cmp的规则下,排出的结果是降序的
  22. sort(Oy+1,Oy+m,cmp);
  23. int sum=0;
  24. int xx=1,yy=1;
  25.  
  26. for (int i=1;i<=n+m-2;i++){//贪心过程,每次取最大的那一刀,切下去。
  27. if (Ox[xx]>Oy[yy]){
  28. sum+=Ox[xx]*yy;
  29. xx++;
  30. }else{
  31. sum+=Oy[yy]*xx;
  32. yy++;
  33. }
  34. }
  35. printf("%d",sum);
  36. }
  37. int main()
  38. {
  39. init();
  40. work();
  41. return 0;
  42. }